Javascript字符串解析器-转义问题
我正在运行一个节点服务器,它接收纯utf8文本并将内容解析为JSON。JSON的一部分将是HTML文档的主体 问题是,当输入包含ä或’等字符时,HTML文档会变得疯狂。我想这与解析器对这些特殊字符的编码/解码有关 有什么想法吗 [编辑] 解析和JSON对象基本上是这样的:Javascript字符串解析器-转义问题,javascript,json,node.js,parsing,Javascript,Json,Node.js,Parsing,我正在运行一个节点服务器,它接收纯utf8文本并将内容解析为JSON。JSON的一部分将是HTML文档的主体 问题是,当输入包含ä或’等字符时,HTML文档会变得疯狂。我想这与解析器对这些特殊字符的编码/解码有关 有什么想法吗 [编辑] 解析和JSON对象基本上是这样的: var string = <mail_body><html> html code here...<html><mail_body> var mail_body = string
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
}
您可以将此用于
var escapedText = text.replace(/\\'/g, "\\'");
并将unicode用于带眼睛的字母a
像这样->\u2665
您需要做的最重要的事情是转义传入字符串,以消除将破坏JSON的引号,这是我希望在Node-中看到的唯一重大问题。从您的输入来看,您看到了如下内容:
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其余部分的邮件正文。您是否控制传入文本?取决于控制的含义。我以流的形式接收文本:stream.on'data',functionchunk{buffer=buffer+chunk.toString'utf8'}。但是数据本身来自其他来源,所以我不能删掉我不想包含的字符。你能告诉我HTML的边界是什么吗?这里真正有用的是输入可能采用的格式示例。例如,如果它是json和html的混合,那么它将比纯html更加棘手。glenatron刚刚编辑了一篇文章,展示了我解析内容和构建json对象的方式。由于我不控制输入内容,您知道如何将替换应用于具有相同输出的所有字符吗?我正在使用Node.js,所以我想一个模块可以完成这项工作,但到目前为止我找不到任何东西。