【问题标题】:Read line break in a string with JavaScript [duplicate]使用 JavaScript 读取字符串中的换行符 [重复]
【发布时间】:2009-04-24 02:29:00
【问题描述】:

可能重复:
Replace all line break in a string with <br /> tag in javascript

如何使用 JavaScript 从值中读取换行符并将其替换为 &lt;br /&gt; 标记?

例子:

var a = "This is man.
     Man like dog."

我希望我的结果看起来像

var a = "This is man.<br />Man like dog.";

【问题讨论】:

    标签: javascript


    【解决方案1】:
    var newString=oldString.replace(/\n/g,"<br />");
    

    【讨论】:

    • -1:如果有多个换行符,这将失败。在 Javascript 中,您必须使用 /pattern/g。
    【解决方案2】:

    完整地说:我遇到过 '\n' 不起作用的情况,在这些情况下我使用过:

    someString.replace(/\n/g,'<br />')
              .replace(/\r/g,'<br />')
              .replace(/\r\n/g,'<br />');
    

    【讨论】:

    • str.replace(/\r\n?/g, '
      ').replace(/\n/g, '
      ');避免将 \r\n 转换为

    • @eyelidlessness(一定很麻烦,没眼皮):好吧,那我们就用 someString.replace(/\n|\r\n?/g,'
      ') 吧。跨度>
    【解决方案3】:

    +1 表示 Click Upvote 的答案。我只想指出,使用这种定义字符串的风格,你会在那里有一堆额外的空白。对换行符做一个简单的替换实际上会给你这个字符串:

    "This is man.<br />     Man like dog."
    

    基本的解决方案是改变你的替换功能:

    newString = oldString.replace(/\n\s*/g, "<br />");
    

    或者更好(恕我直言),像这样定义你的字符串:

    var a = "This is man.\n"
          + "Man like dog."
    ;
    

    这意味着您仍然可以获得很好的缩进,而无需将额外的开销添加到变量中,此外,它还允许您轻松添加 cmets:

    var a = "This is man.\n" // this is the first line.
          + "Man like dog."  // and woo a comment here too
    ;
    

    【讨论】:

    • 查看我对 Click Upvote 答案的评论。
    • @click,为您的评论点赞 +1,因为我为您的回答点赞 +1。
    猜你喜欢
    • 1970-01-01
    • 2019-02-16
    • 2020-12-19
    • 2019-11-04
    • 2011-06-01
    • 2018-01-27
    • 2012-07-23
    • 2021-03-25
    • 2020-02-14
    相关资源
    最近更新 更多