如何在 JavaScript 函数中使用单引号(撇号)转义 JSON 值

How to escape JSON values with Single Quotes(apostrophe) within JavaScript function

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

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

  2. "ask_game_name":"Assassin's Creed IV" - 结果是 "Uncaught SyntaxError: Invalid or unexpected token" 正好指向撇号

下面是在 PHP

中生成此类错误时遵循的以下代码片段
onclick='UserQueries(<?php echo json_encode($askInfoData); ?>)' 

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

<script type="text/javascript">

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

</script>

这是将数据传递到 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

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

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

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

这样的:

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