2012-07-30 133 views
5

试图让我的头绕过一些正则表达式使用JS.replace用一个字符串替换整数。JS正则表达式替换号码

例如,字符串可能是:

var string = 'image[testing][hello][0][welcome]'; 

我想与另一个值来替换 '0'。我本来用这个:

string.replace(/\[\d\]/g, '[newvalue]'); 

但是,当我们开始更换两位数以上(12,200,3204,你明白我的意思),它停止正常工作。不知道如何让它以我想要的方式运作。

在此先感谢。不胜感激。

回答

10

你需要指定多个数字:

string.replace(/\[\d+\]/g, '[newvalue]'); 

JS Fiddle demo

(注意演示使用jQuery的通过节点迭代,但它仅仅是一个方便,对正则表达式没有关系,它只是演示它的功能。)

你原来的原因没有奏效的原因,我认为是因为\d只匹配一个数字,而+运算符/字符指定先前(在这种情况下是数字)字符一次或多次。

参考:

3

使用以下命令:

string.replace(/\[\d+\]/g, '[newvalue]');

这应该匹配括号所有数字。