【问题标题】:JavaScript replace <br> with \nJavaScript 将 <br> 替换为 \n
【发布时间】:2012-09-17 14:52:32
【问题描述】:

我刚刚使用 JavaScript 和 PHP 在 MySQL 数据库中存储了一段文本,并将 \n 替换为 &lt;br /&gt;,我现在遇到的问题是,当我尝试使用 PHP 检索文本时,它会打印出来作为; &lt;br /&gt;

Dear Sir/Maddam<br />This is a letter concerning the following;<br />I would like to.... 

【问题讨论】:

  • 为什么不能直接反转添加时所做的事情?
  • 为什么在存储之前还要修改文本?为什么不只在显示前修改呢?
  • 您最好在数据库中存储没有标记的简单文本。网页是一个视图,因此将\n 转换为&lt;br /&gt; 最好在打印时完成。
  • 数据是否存储为 html 字符而不是文字? IE。 &amp;lt; 是否存储为 &amp;lt; ... 如果是这样,请使用:*.com/a/5302086/94278

标签: php javascript jquery


【解决方案1】:

嗯,显而易见的解决方案是首先不要将 \n 替换为 &lt;br /&gt;

我不知道你想用什么语言来扭转这种损害......

// PHP:
$out = preg_replace("/<br ?\/?>/i","\n",$in);

// JS:
out = input.replace(/<br ?\/?>/ig,"\n");

【讨论】:

  • 这只是一个错字,不是投反对票的理由!
【解决方案2】:

如果您想简单地删除 PHP 中的这些字符,您可以使用方便的 strip_tags() 函数。但是,这将删除字符串中的 所有 HMTL 元素。

如果您想简单地将&lt;br/&gt; 字符串转换回\n,那么您可以使用php 的str_replace() 函数。

$newString = str_replace("<br/>", "\n", $originalString);

【讨论】:

  • 这可能是一个错字,但在 OP 的问题中使用了&lt;br /&gt;(带空格)。
  • @jas - 这就是我习惯写&lt;br/&gt;的方式。如果问题是 OP 不能只是复制粘贴我的代码……那我可以接受。我不是为任何人编写代码——我只是在解释我会做什么。
  • 呵呵。真的。无论如何,与使用正则表达式相比,我更喜欢这种替换。 +1