【问题标题】:How to escape JSON values with Single Quotes(apostrophe) within JavaScript function如何在 JavaScript 函数中使用单引号(撇号)转义 JSON 值
【发布时间】:2019-08-09 11:15:50
【问题描述】:

当数据被传递(不与任何特殊字符混合)到 JavaScript 函数时,它将控制数据。但是当使用单引号传递数据时,控制台中会出现错误

  1. "ask_game_name":"FIFA 17" - 打印时不会出现任何错误

  2. "ask_game_name":"Assassin's Creed IV" - 结果是“未捕获的语法错误:无效或意外的令牌”正好指向撇号

这是在 PHP 中生成此类错误时遵循的以下 sn-ps 代码

onclick='UserQueries(<?php echo json_encode($askInfoData); ?>)' 

数据将作为参数参数在 JavaScript 中传递并显示 JSON 值

<script type="text/javascript">

function UserQueries(data)  
{
    console.log(data);
}

</script>

这是 Data 传递给 JS 后的控制台。

UserQueries({"ask_info_id":"1","ask_user_id":"1","ask_game_name":"FIFA 17","username":"Nishanth","avatar":"1800766906.png"})

UserQueries({"ask_info_id":"2","ask_game_id":"3","ask_game_name":"Assassin

我应该如何在包含单引号值的控制台中显示这些值?

【问题讨论】:

  • @RobG — 不! \ 不是 HTML 转义字符。
  • @Quentin—哎呀,错过了上下文。 &lt;li data-foo='{"ask_game_name":"Assassin&amp;#39;s Creed IV"}'&gt; 可能会更好。 :-) 但大多数人似乎更喜欢 HTML 属性的双引号,所以还有更多工作要做……
  • @RobG — 这就是htmlspecialchars 的用途。

标签: javascript php jquery single-quotes


【解决方案1】:

使字符串可以安全地插入到 HTML 属性中:

  • 使用htmlspecialchars
  • 使用" 分隔属性值,或设置htmlspecialchars 上的选项以在转义数据中包含'

这样的:

onclick="UserQueries(<?php echo htmlspecialchars(json_encode($askInfoData)); ?>)" 

【讨论】:

  • 没有。尝试的结果将与Uncaught SyntaxError: Invalid or unexpected token 相同
  • @Nishanthॐ — 生成的 onclick 属性是什么样的?
  • 我不明白你在说什么属性。可以介绍一下吗
  • 你有一个 PHP 程序。它会生成一些 HTML。在那个 HTML 中是一个 onclick 属性。那个。
  • 列表项标签
猜你喜欢
相关资源
最近更新 更多
热门标签