正则表达式用一个空格替换多个空格
给定一个字符串如:
"The dog has a long tail, and it is RED!"
什么样的jQuery或JavaScript的魔术可以用来保持空间只有一个空间最大?
目标:
"The dog has a long tail, and it is RED!"
鉴于你也想要覆盖制表符,换行符等,只需用ss+
' '
替换ss+
:
string = string.replace(/ss+/g, ' ');
如果你真的只想覆盖空格(不包括制表符,换行符等),那么这样做:
string = string.replace(/ +/g, ' ');
既然你对表演很感兴趣,我用萤火虫来描述这些。 这是我得到的结果:
str.replace( / +/g, ' ' ) -> 790ms
str.replace( / +/g, ' ' ) -> 380ms
str.replace( / {2,}/g, ' ' ) -> 470ms
str.replace( /ss+/g, ' ' ) -> 390ms
str.replace( / +(?= )/g, ' ') -> 3250ms
这是在Firefox上运行的100k字符串替换。
如果你认为性能是一个问题,我鼓励你使用萤火虫做你自己的分析测试。 人类在预测他们节目中的瓶颈在哪里是非常糟糕的。
(另外,请注意,IE 8的开发者工具栏也内置了一个分析器 - 可能值得检查一下IE中的性能。)
var str = "The dog has a long tail, and it is RED!";
str = str.replace(/ {2,}/g,' ');
编辑:如果你想要替换所有类型的空白字符,最有效的方式将是这样的:
str = str.replace(/s{2,}/g,' ');
链接地址: http://www.djcxy.com/p/74147.html