javascript - 如何在 Javascript 中转义 HTML 特殊字符

标签 javascript

看下面的代码:它显然失败了,因为 </script>字符串文字中的标记未转义。

<script>
var myquestion = "What is the tag used to mark the end of a Javascript section?";
var myanswer = "It's </script>!";
alert(myanswer.length);

function someMoreCode() {
    // ...
}
</script>

但是,如果我确实如下所示对其进行转义,则字符串变量现在包含文字 It's &lt;/script> , 不是 It's </script> :

<script>
var myquestion = "What is the tag used to mark the end of a Javascript section?";
var myanswer = "It's &lt;/script>";
alert(myanswer.length);

function someMoreCode() {
    // ...
}
</script>

弹出框将显示 17 而不是预期的 14,这是字符串 It's </script> 的长度.

我如何定义一个字符串来包含 It's </script> 的内容? ?

我想要一个可以应用于任何字符串的通用方法,因为实际的字符串内容将来自用户提供的存储在数据库中的数据,所以做类似 "<"+"/script" 的事情不合适。

最佳答案

您可以使用反斜杠转义斜杠:

<script>
    var myquestion = "What is the tag used to mark the end of a Javascript section?";
    var myanswer = "It's <\/script>!";
    console.log(myanswer);
    
    function someMoreCode() {
        // ...
    }
</script>

(alert 替换为 console.log 用于演示目的)

关于javascript - 如何在 Javascript 中转义 HTML 特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47854411/

相关文章:

javascript if 语句语法(需要帮助)

javascript - 使用 php 包含多个 javascript 代码

javascript - 使用 jQuery 解析 XML 时遇到问题

切换到全屏时 Javascript/jQuery 变慢

php - 页面刷新后自动激活Bootstrap模式

JavaScript:从一个表体淡入另一个表体

javascript - 如何在构造函数的方法内部使用方法?

javascript - 为什么每个人都将端口存储为快速变量?

javascript - 为什么 Google Places API 不执行我的请求?

javascript - d3.csv 无法上一级目录