jQuery中的基本正则表达式查找/替换

时间:2012-11-28 16:37:42

标签: jquery regex replace

我是正则表达式的新手,由于所涉及的特殊字符而无法正确选择/替换这些字符串。

给出这样的表单元素:

<select id="referralForm_currentReferredProducts_1__soldProductId" class="autoWidth soldProductSelect" name="currentReferredProducts[1].soldProductId">

如何选择id和name属性并递增它们?表单元素作为HTML片段附加到表单中,并且在将它们附加到DOM之前我无法实现它们。

谢谢!

更新 我尝试使用regexpal来测试不同的表达式,这个正确选择下划线: \_[0-9]+\_

它实际上并没有替换任何东西..这是我的代码:

$.each($('#add-a-product-wrapper').children().last().find('[id*="__"]'), function(){
    $(this).attr('id').replace(/\_[0-9]+\_/, '_'+ replaceIndex +'_');
});

2 个答案:

答案 0 :(得分:1)

我能够弄清楚..

$.each($('#add-a-product-wrapper').children().last().find('[id*="__"]'), function(){
    var newVal = $(this).attr('id').replace(/\_[0-9]+\_/g, '_'+ replaceIndex +'_');
    $(this).attr('id', newVal);
});

我没有意识到,replace()返回一个值,而不是直接设置一些东西。返回一个值后,可以将其设置为表单元素的新ID。

答案 1 :(得分:0)

试试这个:

$('select').attr('id','new_id').attr('name','new_name');