我有一个搜索框,用户可以在其中搜索任何字符串,包括单引号和双引号,搜索完成后,后端会将关键字传回给我,这样我就可以将其放回框中。我不知道字符串是什么,所以我自己无法转义引号,下面是一个例子:
var keyword = "hello";
$("#selectionkeywords").val();
我遇到的问题是,如果用户输入“hello”,关键字变为“hello”,我会收到此错误:
missing ) after argument list
[Break On This Error]
jQuery("#selectionkeywords").val(""hello"");
用户也可以输入单引号,这样也可以排除它。我尝试使用 escape unescape 但我仍然遇到同样的问题,例如逃脱(“”你好“”) 我可以获得未转义格式的值,例如“你好”,但我不知道该怎么办,转义对它不起作用我最终得到了这个 %26%23034%3Bhello%26%23034%3B
所以我现在几乎被困住了,因为我无法对字符串做任何事情,有什么想法吗?
最佳答案
你必须在服务器端转义字符串,所以 javascript 接收到它已经转义了,对于 PHP 你可以这样做:
$var = str_replace('"', '\"', $var);
然后在 javascript 中确保你在双引号之间阅读它,因为你为此进行了转义:
//use double quotes, as you escaped for them
jQuery("#selectionkeywords").val("<?php echo $var ?>");
关于javascript - 在 Javascript 中使用单引号和双引号转义和取消转义字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13078572/