2012-07-30 136 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]');

這應該匹配括號所有數字。