How can I get and replace this in javascript ( jquery?

How can I get and replace this in javascript ( jquery?

本文关键字:javascript in jquery this replace can get and How      更新时间:2023-09-26

我需要操作一个链接href,如下所示:

/代理/视图/模型:成员/ag_start_dateMonth:08/ag_start_dateYear:2012/ag_end_dateMonth:08/ag_end_dateYear:2012

我需要获取部分:ag_start_dateMonth,并将值08替换为用户通过表单选择的值

这意味着,我需要找到字符串中这个模式ag_start_dateMonth的位置,并在:之后和下一个/之前找到值,然后用用户通过表单选择选项给出的新值替换它。

我该怎么做?请注意,我不太确定regex语法:-/

使用replace:

var s = '/agents/view/model:Member/ag_start_dateMonth:08/ag_start_dateYear:2012/ag_end_dateMonth:08/ag_end_dateYear:2012';
var selected = 10;
s = s.replace(/(ag_start_dateMonth:)([0-9]+)/, '$1' + selected);

这个方便的正则表达式维护两个匹配的组:一个可能称为static,另一个包含要替换的日期。

这应该会让你开始:

var s = '/agents/view/model:Member/ag_start_dateMonth:08/ag_start_dateYear:2012/' +
        'ag_end_dateMonth:08/ag_end_dateYear:2012';
var newText = 'foo';
alert(s.replace(/(ag_start_dateMonth:)08('/)/, '$1' + newText + '$2'));

如果此输入来自页面上的表单,则可以始终"重建"href,而不是搜索和替换。假设您有一个从页面上获取这些值的表单,使用jQuery,这对于之类的东西来说是微不足道的

jQuery('#id-of-form button').click( function () {
    var start_month = jQuery('#id-of-form select.start-month').val();
    var start_year = jQuery('#id-of-form select.start-year').val();
    var end_month = jQuery('#id-of-form select.end-month').val();
    var end_year = jQuery('#id-of-form select.end-year').val();
    jQuery(a#your-link-id).attr('href','/agents/view/model:Member/ag_start_dateMonth:' +
         start_month + '/ag_startdateYear:' + start_year + "/ag_end_dateMonth:" +
         end_month + '/ag_end_dateYear:' + end_year);
});