【问题标题】:How to replace an HTML <br> with newline character "\n"?如何用换行符“\n”替换 HTML <br>?
【发布时间】:2011-11-09 08:52:41
【问题描述】:

如何将 HTML &lt;BR&gt; &lt;BR/&gt; or &lt;BR /&gt; 替换为换行符“\n”

【问题讨论】:

标签: javascript html


【解决方案1】:

您正在寻找 PHP 的 nl2br() 的等价物。这应该可以完成工作:

function br2nl(str) {
    return str.replace(/<br\s*\/?>/mg,"\n");
}

【讨论】:

  • PHP 没有名为 br2nl 的函数。
  • 哈哈,哎呀。接得好。我的意思是nl2br() 的倒数。虽然它真的应该有这个功能:(
  • 有时会发生简单的错误,例如:有人可以使用 "" ,在这种情况下使用 replace(//ig, "\r\n" )
【解决方案2】:

一个便宜的功能:

function brToNewLine(str) {
    return str.replace(/<br ?\/?>/g, "\n");
}

es。

vat str = "Hello<br \>world!";
var result = brToNewLine(str);

结果是:“Hello/nworld!”

【讨论】:

    【解决方案3】:

    该函数考虑是否删除或替换&lt;br&gt;&lt;BR&gt;&lt;br /&gt;&lt;/br&gt;等标签。

    /**
     * This function inverses text from PHP's nl2br() with default parameters.
     *
     * @param {string} str Input text
     * @param {boolean} replaceMode Use replace instead of insert
     * @return {string} Filtered text
     */
    function br2nl (str, replaceMode) {   
    
      var replaceStr = (replaceMode) ? "\n" : '';
      // Includes <br>, <BR>, <br />, </br>
      return str.replace(/<\s*\/?br\s*[\/]?>/gi, replaceStr);
    }
    

    在您的情况下,您需要使用replaceMode。例如:br2nl('1st&lt;br&gt;2st', true)

    Demo - JSFiddle

    JavaScript nl2br & br2nl functions

    【讨论】:

      猜你喜欢
      • 2011-08-22
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 2011-11-14
      相关资源
      最近更新 更多