【问题标题】:How to convert \n to HTML line break如何将 \n 转换为 HTML 换行符
【发布时间】:2013-02-19 01:15:24
【问题描述】:

我正在使用这个插件来解析bbcodebbcodeparser

但它没有将\n 转换为<br/> 的功能。

我尝试添加这个:

replace(/\r?\n|\r/g, '<br>')

...但是没有用。

如何实现换行功能?

【问题讨论】:

标签: javascript


【解决方案1】:

如果您这样做是为了在 html 中显示新行并返回回车,那么您不需要明确地这样做。您可以通过设置 white-space 属性 pre-line 值在 css 中完成。

<span style="white-space: pre-line">@Model.CommentText</span>

【讨论】:

【解决方案2】:

上面的答案帮助我解决了我的问题,但我进一步挖掘并发现了一些关于white-space 属性的附加信息。我希望它可以帮助像我这样的人:

white-space 属性是什么:

white-space 是一个 CSS 属性,有助于控制元素文本中的空白和换行符的处理方式。它可以采用以下值:normal、nowrap、pre、pre-line、pre-wrap。

【讨论】:

    【解决方案3】:

    实际上,浏览器不会将 \r\n 视为真正的换行符,在 PHP 中使用 nl2br,而在 Javascript 中,您可以使用下面的函数来等效于 nl2br()

    function nl2br (str, is_xhtml) {
    var breakTag = (is_xhtml || typeof is_xhtml === 'undefined') ? '<br />' : '<br>';
    return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + breakTag + '$2');}
    

    【讨论】:

    • $1 和 $2 在这里有什么作用?
    • 如果您指定正确的 css 样式,浏览器会将其视为换行符。
    • @Foreever: $1$2 指的是正则表达式中的第一组和第二组(组是() 中的某物)。因此代码将保留字符串的原始部分,并在新行之前插入&lt;br&gt; 标签。
    • is_xhtml指定什么参数?
    【解决方案4】:

    这对我有用

    const regex = /\\n|\\r\\n|\\n\\r|\\r/g;
    string.replace(regex, '<br>');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-27
      • 2018-05-22
      • 2013-03-03
      • 1970-01-01
      相关资源
      最近更新 更多