2011-11-29 131 views
0

我有這個字符串:JavaScript的正則表達式替換

var s = '<span style="font-size:13px">20<div class="lblTitle"></div><span>';  

我想,以取代20至40,我想:

a.replace(/>(\d*)</, 40) 

但它會導致:

<span style="font-size:13px"40div class="lblTitle"></div></span> 

><也被替換...
我該怎麼辦?

回答

4

你可以匹配><,然後把它們放在旁邊的更換:

.replace(/(>)\d*(<)/, "$140$2") 

或簡單地使用:

.replace(/>(\d*)</, ">40<") 

您在串置換這一點,所以你不需要替換爲一個整數。

+0

+ 1,因爲它們不需要維護托架,因爲它們很容易更換。 – Nightfirecat

0

您不能替換特定的組,而是可以將組值用於替換值。你可以使用字符串替換,這裏不需要regex。如果您在更換的某個地方使用了價值的話。

在這種情況下使用正則表達式是一種過度擊殺,並且妨礙了你的表現只是爲了替換一個簡單的文本。更好使用string.replace沒有正則表達式參數。

a.replace(">20<", 40); 

請介意,你沒有提到要更換>/d+<格式的所有數字,如果這是你的要求,然後只需用正則表達式像這樣去:

a.replace(/>(\d*)</, ">40<")