在Javascript中用'\ n'替换<br/>时,正在打印额外的新行

时间:2014-03-25 10:30:43

标签: javascript regex

我需要一些帮助。我正在使用javascript将br标签转换为'\ n'。但它正在放置额外的'\ n'字符代替当前的br标签数量......

以下文字

dummy text dummy text dummy text dummy text dummy text dummy text <br><br>dummy text dummy text dummy text dummy text dummy text dummy text

正在被

取代
dummy text dummy text dummy text dummy text dummy text dummy text 



dummy text dummy text dummy text dummy text dummy text dummy text

我在stackoverflow上尝试了很多正则表达式和东西,但所有这些都打印了额外的换行符。

这是我目前正在使用的表达方式。

str.replace(/<br>/g,'\n')

它发生特别是文本框的内容是通过php中的nl2br加载的。

请参阅以下图片。

这是加载页面的时间 This is when the page is loaded

这是按下编辑并调用str.replace事件的时候。 This is when the edit is pressed and str.replace thing is called.

谁能告诉我哪里犯了错误?

由于

2 个答案:

答案 0 :(得分:2)

PHP nl2br没有替换换行符,它只是将<br />标记添加到现有换行符中。

当你的JS试图&#34;反向&#34;该操作导致原始换行重复。

您的替换应替换为空字符串以删除<br />标记。

还要考虑使用CSS white-space: pre-wrap 而不是 nl2br,因为这会保留所有空格,包括换行符和多个空格!

答案 1 :(得分:1)

只需使用

replace(/<br\s*\/?>\n/mg,"\n")