使用Javascript正则表达式替换“name”属性
我在一个网站上有一个表格,里面有很多输入元素。这些元素的name属性的形式为property-0。但是,用户可能需要多个字段集,就像当前字段集一样,因此我使用jQuery clone克隆了该字段集,但最后需要增加该字段集的数量。数字可能超过10,所以我不能只选择最后一个字符 这就是我正在尝试的:使用Javascript正则表达式替换“name”属性,javascript,jquery,regex,Javascript,Jquery,Regex,我在一个网站上有一个表格,里面有很多输入元素。这些元素的name属性的形式为property-0。但是,用户可能需要多个字段集,就像当前字段集一样,因此我使用jQuery clone克隆了该字段集,但最后需要增加该字段集的数量。数字可能超过10,所以我不能只选择最后一个字符 这就是我正在尝试的: name.replace(/([0-9]+)$/, String(Number('$1')+1)); 但它只是给了我财产。有人知道我做错了什么吗?您可以将函数作为第二个参数传入,如下所示: name.
name.replace(/([0-9]+)$/, String(Number('$1')+1));
但它只是给了我财产。有人知道我做错了什么吗?您可以将函数作为第二个参数传入,如下所示:
name.replace(/([0-9]+)$/,function(a, m) { return +m+1; });
,如果您觉得更合适的话,可以将+m替换为parseIntm,10。您不能像这样使用1美元。仅当您将其直接放入替换字符串或使用回调函数时,此操作才有效。您将字符串“$1”转换为一个数字,而不是一个数字,因此它将变为NaN而不是一个数字。您需要将回调函数传递给。替换为:
谢谢!我从来不知道你可以在那里使用函数。
name.replace(/([0-9]+)$/, function(str, p1) {
return Number(p1) + 1;
});