【问题标题】:Replace all whitespace characters替换所有空白字符
【发布时间】:2011-06-28 13:17:14
【问题描述】:

我想替换 JavaScript 中所有出现的空白字符(空格、制表符、换行符)。
怎么做?

我试过了:

str.replace(/ /gi, "X")

【问题讨论】:

  • 什么是“X”,为什么?
  • string.replace('',"X"); 怎么样
  • 这只是一个例子@MuhammadShahzad ;)

标签: javascript trim


【解决方案1】:

你想要\s

匹配单个空格 字符,包括空格、制表符、表格 饲料,换行。

相当于

[ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]

Firefox[ \f\n\r\t\v]IE


str = str.replace(/\s/g, "X");

【讨论】:

  • +1 用于记住表明 replace 函数不会修改 str,因此您必须将其重新分配。
  • 在一个函数中,你可以返回str.replace,所以你不需要在那个范围内赋值。
  • 记住R使用perl = TRUE,比如gsub(pattern = "[\\s]+", ..., perl = TRUE)
【解决方案2】:

如果我们想用单个字符更改所有多个连接的空格,我们也可以使用它:

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

在此处查看实际操作:https://regex101.com/r/d9d53G/1

说明

/\s+/g

  • \s+ 匹配任何空白字符(等于[\r\n\t\f\v ]
  • + Quantifier — 匹配一次到无限次,尽可能多次,按需回馈(贪婪)

  • 全局模式标志
    • g 修饰符:global。所有匹配(第一次匹配后不返回)

【讨论】:

  • 正则表达式加号 (+) 对我用下划线 (_) 替换空白类型字符的用例很有用,如果我的用户手指有多余的空间,我真的不想显示一个额外的_。谢谢!
【解决方案3】:

\s 是一个覆盖所有空白的元字符。你不需要让它不区分大小写——空格没有大小写。

str.replace(/\s/g, "X")

【讨论】:

    【解决方案4】:

    你试过\s吗?

    str.replace(/\s/g, "X");
    

    【讨论】:

      【解决方案5】:

      如果你使用

      str.replace(/\s/g, "");
      

      它替换所有空格。例如:

      var str = "hello my world";
      str.replace(/\s/g, "") //the result will be "hellomyworld"
      

      【讨论】:

        【解决方案6】:

        试试这个:

        str.replace(/\s/g, "X")
        

        【讨论】:

        • 那行不通。 \s\n\t 匹配:任何空白字符,后跟换行符,后跟制表符。
        【解决方案7】:

        不是 /gi 而是 /g

        var fname = "My Family File.jpg"
        fname = fname.replace(/ /g,"_");
        console.log(fname);
        

        给予

        "My_Family_File.jpg"
        

        【讨论】:

          【解决方案8】:

          其实已经成功了,但是

          试试这个。

          将值 /\s/g 转换为字符串变量,如

          String a = /\s/g;
          
          str = str.replaceAll(a,"X");
          

          【讨论】:

          • 你从哪里得到replaceAll
          【解决方案9】:

          你可以使用函数trim

          let str = ' Hello World ';

          alert (str.trim());

          Hello World 前后的所有空格都将被删除。

          【讨论】:

          • 这将删除“hello”和“world”之间的空格。问题说“所有”空格
          【解决方案10】:

          我使用了 underscore.string 中的“slugify”方法,它的作用就像一个魅力:

          https://github.com/epeli/underscore.string#slugifystring--string

          很酷的是你真的可以只导入这个方法,不需要导入整个库。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-01-06
            • 2019-06-09
            • 2013-11-22
            • 1970-01-01
            相关资源
            最近更新 更多