2011-11-29 88 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<")