用单个空格替换多个空格的正则表达式

用单个空格替换多个空格的正则表达式

给出如下的字符串:

"The dog      has a long   tail, and it     is RED!"

什么样的jQuery或JavaScript魔法可以将空间保持在一个最大空间?

目标:

"The dog has a long tail, and it is RED!"


慕沐林林
浏览 1490回答 3
3回答

阿波罗的战车

考虑到您还想覆盖制表符、换行符等,只需替换\s\s+带着' ':string = string.replace(/\s\s+/g, ' ');如果您确实希望只覆盖空格(因此不包括制表符、换行符等),请这样做:string = string.replace(/  +/g, ' ');

芜湖不芜

因为您似乎对性能感兴趣,所以我用Firebug对它们进行了分析。以下是我得到的结果:str.replace( /  +/g, ' ' )        ->  380msstr.replace( /\s\s+/g, ' ' )       ->  390msstr.replace( / {2,}/g, ' ' )         ->  470msstr.replace( / +/g, ' ' )             ->  790msstr.replace( / +(?= )/g, ' ')            -> 3250ms这是在Firefox上,运行100 k字符串替换。如果您认为性能是个问题,我鼓励您使用Firebug进行自己的分析测试。众所周知,人类在预测其程序中的瓶颈所在方面做得很差。(另外,请注意,IE8的Developer工具栏也内置了一个分析器-可能值得检查IE中的性能。)

慕妹3242003

var str = "The      dog        has a long tail,      and it is RED!";str = str.replace(/ {2,}/g,' ');编辑:如果您希望替换所有类型的空白字符,最有效的方法是:str = str.replace(/\s{2,}/g,' ');
打开App,查看更多内容
随时随地看视频慕课网APP