在函数调用中放置的 javascript 变量中转义引号

Escaping quotes in javascript variable placed in function call

提问人:ADM 提问时间:2/3/2017 最后编辑:ADM 更新时间:2/6/2017 访问量:65

问:

我的html中有一个编辑图像,其中包含:

 onclick="javascript:editBook(author,title)"

author 和 title 是包含 PHP 脚本中值的变量。editBook是一个打开新窗口的功能,可以在其中编辑书的作者和标题。

标题可能包含带引号的标题,当标题包含引号时,单击时会导致“Uncaught SyntaxError: Invalid or unexpected token”错误。

我必须做些什么才能摆脱书名中的引号?

除了引号之外,还有另一个符号,如&,一本书的标题可以包含。我怎样才能逃脱呢?

谢谢!

JavaScript jQuery 转义 引号

评论


答:

0赞 Web Dev Guy 2/3/2017 #1

您需要使用上面输入的键的反斜杠字符\

参考 http://www.w3schools.com/js/js_strings.asp

评论

0赞 ADM 2/3/2017
我看不到任何关于变量内引号以及如何转义它们的章节。如果你找到它,请告诉我。谢谢
0赞 Web Dev Guy 2/4/2017
根据您编辑的答案,您似乎想要连接。因此,如果作者和标题是变量,请执行此操作onclick="javascript:editBook(" + author + "," + title + ")"
0赞 ADM 2/6/2017 #2

在 PHP 脚本中:

function javascript_escape($string) 
{ 
    return str_replace("\n", '\n', str_replace('"', '\"', addcslashes(str_replace("\r", '', (string)$string), "\0..\37'\\"))); 
}