JavaScript 和 PHP 中的转义引号

发布于 2024-12-13 13:47:01 字数 623 浏览 0 评论 0原文

<?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 中收到“Uncaught SyntaxError: Unexpected token ILLEGAL”错误。

  • 我在引号前添加斜杠,但不起作用 - $comment = str_replace("'","\'",$comment);

在本例中如何转义引号和双引号?

<?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>

When $comment string contains a single quote , I'm getting "Uncaught SyntaxError: Unexpected token ILLEGAL" error in javascript.

  • I add slashes before quotes, it didn't work - $comment = str_replace("'","\'",$comment);

How can I escape quote and double quote in this example?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

转角预定愛 2024-12-20 13:47:01

使用 json_encode(),这可以保证您的输出是语法上有效的 JavaScript 代码:

<input type="button" onclick="doSomething(<?php echo json_encode($comment) ?>">

Use json_encode(), which guarantees your output will be syntactically valid JavaScript code:

<input type="button" onclick="doSomething(<?php echo json_encode($comment) ?>">
左耳近心 2024-12-20 13:47:01

使用 PHP 函数 addslashes()

Use the PHP function addslashes().

峩卟喜欢 2024-12-20 13:47:01

你可以在 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;
}

希望这有帮助:)

You can try something like this in 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;
}

Hope this help :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文