为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

用单个空格替换多个空格的正则表达式给出如下的字符串:"The dog      has a long   tail, and it     is RED!"什么样的jQuery或JavaScript魔法可以将空间保持在一个最大空间?目标:"The dog has a long tail, and it is RED!"
查看完整描述

3 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

考虑到您还想覆盖制表符、换行符等,只需替换\s\s+带着' ':

string = string.replace(/\s\s+/g, ' ');

如果您确实希望只覆盖空格(因此不包括制表符、换行符等),请这样做:

string = string.replace(/  +/g, ' ');


查看完整回答
反对 回复 2019-07-11
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

因为您似乎对性能感兴趣,所以我用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中的性能。)


查看完整回答
反对 回复 2019-07-11
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

var str = "The      dog        has a long tail,      and it is RED!";str = str.replace(/ {2,}/g,' ');

编辑:如果您希望替换所有类型的空白字符,最有效的方法是:

str = str.replace(/\s{2,}/g,' ');


查看完整回答
反对 回复 2019-07-11
  • 3 回答
  • 0 关注
  • 1478 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信