JQuery / Coffeescript unescape变量字符串

时间:2014-02-27 22:44:09

标签: javascript jquery coffeescript escaping

所以我在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_replacenl2br无效。

此外,数据来自名为mailparser.io的邮件解析服务。我怀疑它与此有什么关系,但我真的不确定了。

这里缺少什么?我需要一些帮助来确定问题所在。

1 个答案:

答案 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)