【问题标题】:replace '\n' in javascript [duplicate]在javascript中替换'\ n' [重复]
【发布时间】:2012-12-13 21:13:24
【问题描述】:

我正在尝试使用以下方法在 JavaScript 中进行替换:

r = "I\nam\nhere";
s = r.replace("\n"," ");

但不是给我

我在这里

作为s的值, 它返回相同。

问题出在哪里??

【问题讨论】:

标签: javascript replace


【解决方案1】:

replaceAll() 相对较新,并非所有浏览器都支持:

r = "I\nam\nhere";
s = r.replaceAll("\n"," ");

【讨论】:

    【解决方案2】:

    正如其他人所说,您的正则表达式缺少全局标志。正确的表达方式应该和别人给你的一样。

    var r = "I\nam\nhere";
    var s = r.replace(/\n/g,' ');
    

    我想指出与一开始的不同之处。 您正在使用以下语句

    var r = "I\nam\nhere";
    var s = r.replace("\n"," ");
    

    这些陈述确实是正确的,并将替换字符 \n 的一个实例。它使用不同的算法。当给出一个字符串来替换它时,它将寻找第一次出现并简单地用作为第二个参数给出的字符串替换它。当使用正则表达式时,我们不只是寻找要匹配的字符,我们可以编写复杂的匹配语法,如果找到一个或多个匹配,那么它将被替换。更多关于 JavaScript 正则表达式的信息可以在这里找到w3schools

    例如,您制作的方法可以更通用,以解析来自几种不同类型文件的输入。由于操作系统的差异,在需要换行的情况下,文件带有 \n 或 \r 是很常见的。为了能够同时处理您的代码,可以使用正则表达式的某些功能重写。

    var r = "I\ram\nhere";
    var s = r.replace(/[\n\r]/g,' ');
    

    【讨论】:

      【解决方案3】:

      from here 的解决方案非常适合我:

      r.replace(/=(\r\n|\n|\r)/gm," ");
      

      【讨论】:

        【解决方案4】:

        只需使用\\\n 替换即可。

        r.replace("\\\n"," ");
        

        【讨论】:

          【解决方案5】:

          它对我有用:

          var s = r.split('\\n').join(' ');
          

          【讨论】:

            【解决方案6】:

            你可以使用:

            var s = r.replace(/\n/g,' ').replace(/\r/g,' ');
            

            因为不同的SO使用不同的方式来设置一个“新行”,例如:Mac Unix Windows,在此之后,您可以使用其他功能来规范空白。

            【讨论】:

              【解决方案7】:

              使用s = r.replace(/\\n/g," ");

              Get a reference

              javascript 替换代码中的“g”代表“贪婪”,这意味着如果可能,替换应该发生多次

              【讨论】:

              • \n 仍然是字符串中的值!
              • g 实际上代表“全球”
              【解决方案8】:

              .replace() 需要全局匹配标志:

              s = r.replace(/\n/g, " ");
              

              【讨论】:

                【解决方案9】:

                问题是您需要使用g 标志来替换所有 个匹配项,因为默认情况下,replace() 只作用于它找到的第一个匹配项:

                var r = "I\nam\nhere",
                    s = r.replace(/\n/g,' ');
                

                不过,要使用 g 标志,您必须使用正则表达式方法。

                顺便提一下,声明变量的时候请使用var,否则你创建的变量都是全局的,以后可能会出问题。

                【讨论】:

                  猜你喜欢
                  • 2011-07-01
                  • 1970-01-01
                  • 2019-04-12
                  • 1970-01-01
                  • 2020-01-15
                  • 2014-02-20
                  • 1970-01-01
                  • 2013-02-20
                  • 1970-01-01
                  相关资源
                  最近更新 更多