用另一个字符替换任意数量的字符

问题描述:

使用JavaScript的替换函数如何用相同的字符替换多个字符?用另一个字符替换任意数量的字符

Input = "blah...blah..blah....blah" 
Output = "blah.blah.blah.blah" 
+4

它是否需要是任何字符或特定的字符? – 2012-07-18 18:18:46

input = input.replace(/\.+/g, "."); 
+2

如果你想要替换所有的匹配,你实际上需要'替换(/..//g,“。”)。否则,你会得到''blah.blah..blah .... blah''。 – bhamlin 2012-07-18 18:21:51

+0

@bhamlin好点,谢谢。 – 2012-07-18 18:22:37

+0

我不确定这一点,但'/\.\.+/ g'可能会带来更好的性能,因为它不会花时间用自己替换一个'.'。不过,使用字符串时,这可能只是偏执狂。 – dlras2 2012-07-18 18:33:12

JavaScript正则表达式替换想到,搜索(+),并与更换。

喜欢的东西

s.replace(/(\.+)/mg,"."); 

未经检验的,而应该是足够接近,让您在正确的方向推。祝你好运。

在您设置字符的括号之间,例如以“”:

var s = "blah ... blah ..."; 
s.replace(/[.]+/gi, '.') 
alert(s); 

所以:其中Y

s.replace(/[X]+/gi, 'Y'); 

的一个替代任何数量的X,如果你需要匹配任何重复的字符,而不仅仅是一个时期,你可以使用:

input = input.replace(/(.)\1+/g, "$1"); 

所以blaaaah...blahhh..blah....bbblah成为blah.blah.blah.blah