如何在javascript中获取和替换它(jquery?

时间:2012-08-27 12:48:44

标签: javascript regex

我需要操作一个看起来像这样的链接href:

  

/剂/视图/型号:会员/ ag_start_dateMonth:08 / ag_start_dateYear:2012 / ag_end_dateMonth:08 / ag_end_dateYear:2012

我需要抓住该部分:ag_start_dateMonth并将值08替换为用户通过表单选择的值。

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

我该怎么做? 请指教,我对正则表达式语法不太了解: - /

3 个答案:

答案 0 :(得分:4)

使用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);

这个小方便的正则表达式维护着两个匹配的组:一个可以调用静态,另一个包含要替换的日期。

答案 1 :(得分:1)

这应该让你前进:

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'));

答案 2 :(得分:0)

如果此输入来自页面上的表单,您可以始终“重建”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);
});