Javascript:从动态内容中转义引号

时间:2013-11-16 10:10:11

标签: javascript escaping double-quotes

我有一个var,它接受Facebook API返回的字符串并将其转换为JSON对象。在对象内部有一个粉丝页面的标题。

var myJSON = JSON.parse('<?php echo $jsonString; ?>'); 

受关注的FB返回的字符串部分看起来像这样:

{"data":[
    {"category":"Website",
    "name":"Page's Title",
    "access_token":"TOKEN"}
]}

我将<?php echo $jsonString; ?>包装在单引号中,因为如果我使用双引号,它们会与FB返回的字符串中的双引号冲突。但是请参阅Page's Title中的单引号?如果碰巧FB返回一个字符串,该字符串包含一个破坏我的JS代码的单引号,我在控制台中得到Uncaught SyntaxError: Unexpected identifier

如何使我的代码足够健壮以解析字符串,同时允许其中的双引号和单引号的可能性?

2 个答案:

答案 0 :(得分:1)

您可以使用addslashes(),在需要引用的字符之前返回带反斜杠的字符串。这些字符是单引号('),双引号("),反斜杠(\)和NUL(NULL字节)。

var myJSON = JSON.parse('<?php echo addslashes($jsonString); ?>'); 

答案 1 :(得分:1)

使用addslashes()

这将在需要引用的字符之前返回带反斜杠的字符串。

var myJSON = JSON.parse('<?php echo addslashes($jsonString); ?>');