Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript正则表达式替换“name”属性_Javascript_Jquery_Regex - Fatal编程技术网

使用Javascript正则表达式替换“name”属性

使用Javascript正则表达式替换“name”属性,javascript,jquery,regex,Javascript,Jquery,Regex,我在一个网站上有一个表格,里面有很多输入元素。这些元素的name属性的形式为property-0。但是,用户可能需要多个字段集,就像当前字段集一样,因此我使用jQuery clone克隆了该字段集,但最后需要增加该字段集的数量。数字可能超过10,所以我不能只选择最后一个字符 这就是我正在尝试的: name.replace(/([0-9]+)$/, String(Number('$1')+1)); 但它只是给了我财产。有人知道我做错了什么吗?您可以将函数作为第二个参数传入,如下所示: name.

我在一个网站上有一个表格,里面有很多输入元素。这些元素的name属性的形式为property-0。但是,用户可能需要多个字段集,就像当前字段集一样,因此我使用jQuery clone克隆了该字段集,但最后需要增加该字段集的数量。数字可能超过10,所以我不能只选择最后一个字符

这就是我正在尝试的:

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