【问题标题】:Javascript Regular Expression Remove SpacesJavascript 正则表达式删除空格
【发布时间】:2011-11-01 08:15:19
【问题描述】:

所以我正在为 JQuery 编写一个小插件来删除字符串中的空格。 see here

(function($) {
    $.stripSpaces = function(str) {
        var reg = new RegExp("[ ]+","g");
        return str.replace(reg,"");
    }
})(jQuery);

我的正则表达式目前是[ ]+ 来收集所有空格。 这行得通..但是它并没有在我的嘴里留下好味道.. 我也试过[\s]+[\W]+ 但都没有成功..

必须有一种更好(更简洁)的方法来仅搜索空格。

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    我建议您使用文字符号和\s 字符类:

    //..
    return str.replace(/\s/g, '');
    //..
    

    使用字符类\s 和仅使用' ' 之间存在区别,这将匹配更多的空白字符,例如'\t\r\n' 等,查找' ' 将仅替换ASCII 32 个空格。

    RegExp 构造函数在您想要构建动态模式时很有用,在这种情况下您不需要它。

    此外,正如您所说,"[\s]+" 不适用于 RegExp 构造函数,这是因为您正在传递一个字符串,并且您应该“双重转义”反斜杠,否则它们将被解释为字符在字符串中转义(例如:"\s" === "s"(未知转义))。

    【讨论】:

      【解决方案2】:
      "foo is bar".replace(/ /g, '')
      

      【讨论】:

        【解决方案3】:

        在生产和跨行工作中

        这在几个应用程序中用于清理用户生成的内容,删除额外的空格/返回等,但保留空格的含义。

        text.replace(/[\n\r\s\t]+/g, ' ')
        

        【讨论】:

          【解决方案4】:

          删除字符串中的所有空格

          // Remove only spaces
          `
          Text with spaces 1 1     1     1 
          and some
          breaklines
          
          `.replace(/ /g,'');
          "
          Textwithspaces1111
          andsome
          breaklines
          
          "
          
          // Remove spaces and breaklines
          `
          Text with spaces 1 1     1     1
          and some
          breaklines
          
          `.replace(/\s/g,'');
          "Textwithspaces1111andsomebreaklines"
          

          【讨论】:

            【解决方案5】:
            str.replace(/\s/g,'')
            

            为我工作。

            jQuery.trim 对 IE 有以下 hack,虽然我不确定它会影响哪些版本:

            // Check if a string has a non-whitespace character in it
            rnotwhite = /\S/
            
            // IE doesn't match non-breaking spaces with \s
            if ( rnotwhite.test( "\xA0" ) ) {
                trimLeft = /^[\s\xA0]+/;
                trimRight = /[\s\xA0]+$/;
            }
            

            【讨论】:

              【解决方案6】:

              这同样有效:http://jsfiddle.net/maniator/ge59E/3/

              var reg = new RegExp(" ","g"); //<< just look for a space.
              

              【讨论】:

                猜你喜欢
                • 2012-11-15
                • 2021-04-10
                • 1970-01-01
                • 1970-01-01
                • 2019-02-16
                • 2018-06-11
                • 2016-06-17
                • 2020-09-03
                • 1970-01-01
                相关资源
                最近更新 更多