看下面的代码:它显然失败了,因为 </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 </script>
, 不是 It's </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>
弹出框将显示 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/