我需要操作一个看起来像这样的链接href:
/剂/视图/型号:会员/ ag_start_dateMonth:08 / ag_start_dateYear:2012 / ag_end_dateMonth:08 / ag_end_dateYear:2012
我需要抓住该部分:ag_start_dateMonth
并将值08
替换为用户通过表单选择的值。
这意味着,我需要在字符串中找到此模式ag_start_dateMonth
的位置,并在:
之后和下一个/
之前找到值,并将其替换为用户通过表单选择选项给出的新值。
我该怎么做? 请指教,我对正则表达式语法不太了解: - /
答案 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);
});