Javascript字符串解析器 - 转义问题

时间:2014-12-09 09:24:41

标签: javascript json node.js parsing

我正在运行一个接收普通utf8文本的Node服务器,并将内容解析为JSON。部分JSON将是HTML文档的主体。

问题在于,当输入包含“ä”或“'”等字符时,HTML文档会变得疯狂。我想这与这些特殊字符的解析器的编码/解码有关。

有关于此的任何想法吗?

[编辑]

解析和JSON对象基本上是这样的:

var string = <mail_body><html> html code here...<html><mail_body>

var mail_body = string.split("<mail_body>")[1]
var obj = {
  "subject": "subject 123",
  "mail_body": mail_body
}

2 个答案:

答案 0 :(得分:0)

您可以将此用于&#34;&#39;&#34;

var escapedText = text.replace(/\\'/g, "\\'");

并使用一个unicode用于&#34;字母a用眼睛&#34;

像这样 - &gt; \ u2665

https://mathiasbynens.be/notes/javascript-escapes

答案 1 :(得分:0)

你需要做的最重要的事情是转义传入的字符串以消除会破坏你的JSON的引号,这是我期望看到的唯一重要问题 - browsers have a slightly harder time。根据您的输入,您正在查看以下内容:

   var string = <mail_body><html> html code here...<html><mail_body> 
   var mail_body = string.split("<mail_body>")[1]
   mail_body = mail_body.replace(/\"/g, '\\"'); // regex for global replace, have to escape quotes

这应该会给你一个邮件正文,它不会意外地结束并打破你剩下的JSON。