<?php
/* ... Getting record from database */
$comment = $record["comment"];
/* There might be quotes or double quotes, we don't know */
echo "<input type='button' onclick=\"doSomething('$comment')\" />";
?>
<script>
function doSomething(comment) {
alert(comment);
/* Something else */
}
</script>
当$ comment字符串包含单引号时,我在javascript中收到“未捕获的SyntaxError:Unexpected token ILLEGAL ”错误。
$comment = str_replace("'","\'",$comment);
如何在此示例中转义引号和双引号?
答案 0 :(得分:9)
使用json_encode(),这可以保证您的输出在语法上是有效的JavaScript代码:
<input type="button" onclick="doSomething(<?php echo json_encode($comment) ?>">
答案 1 :(得分:1)
使用PHP函数addslashes()。
答案 2 :(得分:0)
你可以在Javascript中尝试这样的事情:
function addslashes(str){
str=str.replace(//g,'\');
str=str.replace(/'/g,''');
str=str.replace(/"/g,'"');
str=str.replace(//g,'');
return str;
}
function stripslashes(str){
str=str.replace(/'/g,''');
str=str.replace(/"/g,'"');
str=str.replace(//g,'');
str=str.replace(/\/g,'');
return str;
}
希望这有帮助:)