【问题标题】:Javascript: Escaping quotes from dynamic contentJavascript:从动态内容中转义引号
【发布时间】:2013-11-16 10:10:11
【问题描述】:

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

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

关注的FB返回的字符串部分如下所示:

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

我将&lt;?php echo $jsonString; ?&gt; 用单引号括起来,因为如果我使用双引号,它们会与FB 返回的字符串中的双引号发生冲突。但是看到Page's Title 里面的单引号?如果碰巧 FB 返回一个包含单引号的字符串,该单引号会破坏我的 JS 代码,我会在控制台中得到 Uncaught SyntaxError: Unexpected identifier

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

【问题讨论】:

    标签: javascript escaping double-quotes


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      使用addslashes()

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

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

      【讨论】:

        猜你喜欢
        • 2011-01-01
        • 1970-01-01
        • 2014-08-24
        • 2023-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多