所以我在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
字段。
我正在尝试用\n
替换<br>
的所有实例,并且我真的尝试了每种方法的jquery,javascript和coffeescript变体,我可以在互联网上找到它们。在将数据输入数据库之前,我还尝试过preg_replace
和nl2br
无效。
此外,数据来自名为mailparser.io的邮件解析服务。我怀疑它与此有什么关系,但我真的不确定了。
这里缺少什么?我需要一些帮助来确定问题所在。
答案 0 :(得分:2)
根据评论,似乎有人将真实换行符(即(Coffee | Java)脚本中的"\n"
)转换为数据库中的两个字符串'\\' + 'n'
。这可以解释原因:
d.body_text.replace(/\n/g, "<br />")
没有任何用处:没有新行可以替换为<br>
,所以,没有任何东西可以被替换。解决方案是取代真正存在的东西:
d.body_text.replace(/\\n/g, "<br />")
// ------------------^^^ This gives you a literal \n (as two characters)