我有一个长字符串,我需要递增其中的每个数字,保留文本的其余部分。
我正在使用此功能
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="">
我已经使用this example尝试和帮助,我尝试了一些变化,但我的正则表达式技能让我失望。
非常感谢任何帮助。
答案 0 :(得分:2)
你需要使用'global'标志,然后它应该替换所有出现。
即
newHtml = newHtml.replace(/\d+/g, function (val) { return parseInt(val) + 1; });
看到它在这里工作: http://jsfiddle.net/4S7CE/
没有'g',它只会替换匹配的第一个实例。