Javascript在函数中转义引号

时间:2018-06-11 18:14:26

标签: javascript

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>untitled</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta http-equiv="Content-Style-Type" content="text/css">
  <meta http-equiv="Content-Script-Type" content="text/javascript">
  <script type="text/javascript">
    function sendToCart(a,b,c,d,f){
      alert(arguments[1].replace(/'/g, "\\'"))
    }
  </script>
</head>
<body>
  <a href="#" onclick="sendToCart('102','Lover's Combo','5.00','13','');return false">send to chart</a>
</body>
</html>

任何人都可以告诉我为什么警报不起作用?当我在onclick时通过值而直接逃避但在从函数读取后没有工作时,它工作正常吗?

2 个答案:

答案 0 :(得分:0)

您需要修复服务器端代码以确保转义撇号。在服务器端,根据您的服务器,您应该有很好的方法来转义撇号。如果您使用的是PHP,则可能需要致电addslashes。或者,您可以在服务器端调用一个方法,用\\'

替换撇号

答案 1 :(得分:-1)

当JavaScript解析器在字符串文字s之后到达'Lover'时,会发生错误。

您的转义函数稍后运行(或者,如果语法错误没有停止进一步执行,则会运行。)

您可以通过尝试在解析错误已经命中之后从同一程序中对其应用正则表达式来修复JavaScript源代码中的语法错误。