【问题标题】:JavaScript string replacement problemJavaScript 字符串替换问题
【发布时间】:2010-10-04 03:02:53
【问题描述】:

我正在对从 JSON Web 服务返回的文本进行一些字符串替换,字符串可能如下所示:

"Hello I am a string.\r\nThis is a second line.\r\n\r\nThis is a bigger space"

我想用<br /> 标记替换所有\r\n 以便格式化HTML,但是当我这样做时:

var string = result.replace('\r\n','<br />');

我只替换了第一个实例,没有其他任何实例。

我做错了什么?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    尝试设置全局标志的正则表达式:

    var string = result.replace(/\r\n/g,'<br />');
    

    【讨论】:

    • 大功告成。我忘记了你可以用 javascript 进行正则表达式替换
    【解决方案2】:

    什么都没有。这就是 JavaScript 替换函数的工作原理:)

    您可以使用正则表达式来替换所有出现的地方。

    var string = result.replace(/\r\n/g, '<br />');
    

    看看this链接

    【讨论】:

      【解决方案3】:

      虽然在这种情况下使用正则表达式是最绝对你想要使用的,但你可能会发现自己在生活中的某个时候至少会遇到一两次以上的问题,而且有一个苗条的您可能希望做的比正则表达式自然会做的少一点。出于这个原因,我将演示一种替代方法,它在完成相同的事情的同时,为潜在的定制留出了更多空间:

      <script>
      while (result.indexOf('\r\n') != -1)
       {
      result = result.replace('\r\n', '<br />');
       }
      string = result;
      </script>
      

      我喜欢使用这种方法(while 块)和原型来修改 JavaScript 中附加到 String 对象的原生 replace() 方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-11
        • 2011-11-24
        • 1970-01-01
        • 1970-01-01
        • 2011-01-22
        • 2020-03-15
        • 1970-01-01
        • 2012-02-15
        相关资源
        最近更新 更多