1

我有一个长字符串,我需要增加其中的每个数字,而将其余文本保持原样。

我正在使用这个功能

newHtml = newHtml.replace(/\d+/, function (val) { return parseInt(val) + 1; });

这适用于自由文本中的数字,但当数字被方括号括起来时会失败。例子:

<input id="Form[0]_Phone" name="Form[0].Phone" type="text" value="">

需要成为

<input id="Form[1]_Phone" name="Form[1].Phone" type="text" value="">

我用这个例子来尝试和帮助,我尝试了一些变化,但我的正则表达式技能让我失望了。

非常感谢任何帮助。

4

2 回答 2

2

您需要使用“全局”标志,然后它应该替换所有出现。

IE

newHtml = newHtml.replace(/\d+/g, function (val) { return parseInt(val) + 1; });

看到它在这里工作:http: //jsfiddle.net/4S7CE/

如果没有“g”,它将仅替换匹配的第一个实例。

于 2012-07-27T10:37:11.610 回答
2

您的模式中没有任何内容导致所描述的行为 - 方括号中的数字也应该受到影响。一个明显的问题是您只影响找到的第一个数字,而不是全部 -g在模式的正斜杠后添加全局标志。

为我工作 - 看到这个小提琴:http: //jsfiddle.net/ypUmg/

于 2012-07-27T10:38:27.290 回答