我们必须在JavaScript字符串中转义正斜杠的真正原因是什么,以及为什么我们必须在XHTML中转义字符串/无字符串。很多教程只是简单介绍了这个问题。
答案 0 :(得分:12)
我们必须在JavaScript字符串中转义正斜杠
的真正原因是什么
在HTML 4文档中,定义为包含CDATA的元素(例如脚本)中的序列</
是结束标记,并将结束元素(如果不是</script>
则会出错。
就JS而言/
和\/
在字符串中是相同的。就HTML而言</
会启动结束标记,但<\/
不会。
,还有为什么我们必须在XHTML中转义字符串/无字符串。
XHTML没有提供指定元素本质上包含CDATA的方法,因此您需要显式处理否则具有特殊含义的字符(<
,&
等)。使用CDATA标记包装元素的内容是实现此目的的最简单方法。
答案 1 :(得分:3)
您不需要在JavaScript字符串中转义/
,只需\
,因为如果不这样做,那么字符串yes\no
将无意中转换为{{1} }}。转义yes<newline>o
会阻止这种情况。
此外,如果您没有在URL中转义\
,那么它之后的任何内容都将被视为新参数。例如,&
将表示“参数a=Q&A
的值为”a
“,而且还有一个参数Q
”而不是“参数A
值“a
”“。转义的正确方法是Q&A
。
答案 2 :(得分:-1)
需要使用斜杠来防止浏览器(特别是较旧的浏览器)错误地将正斜杠解释为结束JavaScript标记。