【发布时间】:2014-02-27 22:44:08
【问题描述】:
所以我在 coffeescript 文件中有这个 jquery 块;
$("#parser-results").append(
"<tr><td>" + d.id + "</td>" +
"<td>" + d.received_at + "</td>" +
"<td>" + d.from_address + "</td>" +
"<td>" + d.to_address + "</td>" +
"<td>" + d.subject_text + "</td></tr>" +
"<tr><td colspan=5><div class='body-text'>" + d.body_text.replace(/\n/g, "<br />") + "</div></td></tr>"
)
这里的问题与变量d.body_text 相关,它是从数据库中检索到的TEXT 字段。
我正在尝试用<br> 替换\n 的所有实例,并且我确实尝试了我在互联网上可以找到的每种方法的每种jquery、javascript 和coffeescript 变体。我也试过preg_replace和nl2br在数据输入数据库之前没有用。
此外,数据来自名为 mailparser.io 的邮件解析服务。我怀疑这与此有关,但我真的不确定了。
这里缺少什么?我需要一些帮助来确定问题所在。
【问题讨论】:
-
你提到数据入库之前,你试过preg_replace和nl2br添加
。你是说原始数据也没有用
保存?有没有办法检查原始数据,例如使用 phpMyAdmin 来确认... 这是一个快速调试提示:尝试另一个类似的过程,看看它是否也失败了。比如尝试替换所有空格(\s),看看替换方法是否至少有效。它可能会给你一些关于检查什么的想法。 -
另一个提示:您无需添加
<br>即可获得换行符。只需在您的 css 中使用white-space:pre-wrap;,并保留文本。或者,如果您想将多个空格合并为一个,请使用pre-line。见developer.mozilla.org/en-US/docs/Web/CSS/white-space。 -
你能举一个例子来说明
d.body_text到底是什么样子吗?你确定你有换行符而不是\ns 作为两个字符吗? -
@muistooshort 你是对的。它们是数据库中的
\n字符。例如hey guys\nhow are you?\n -
那么
d.body_text.replace(/\\n/g, '<br>')会给你想要的结果吗?
标签: javascript jquery coffeescript escaping