JavaScript和字符串中的正斜杠

问题描述

我们必须在JavaScript字符串中转义正斜杠的真正原因是什么,以及为什么我们必须在XHTML中转义字符串/不字符串。很多教程只是解决了这个问题。     

解决方法

  我们必须在JavaScript字符串中转义正斜杠的真正原因是什么? 在HTML 4文档中,定义为包含CDATA的元素(例如脚本)中的序列“ 0”是结束标签,并将结束该元素(如果不是“ 1”,则会出现错误。 就JS而言,字符串中的
/
\\/
是相同的。就HTML而言,“ 0”开始一个结束标记,而“ 5”则没有结束标记。   ,以及为什么我们必须在XHTML中转义字符串/不字符串。 XHTML没有提供指定元素本质上包含CDATA的方法,因此您需要显式处理否则将具有特殊含义的字符(
<
&
等)。用CDATA标记包装元素的内容是实现此目的的最简单方法。     ,您不需要将JavaScript字符串中的
/
转义为
\\
,因为如果您不这样做,则字符串
yes\\no
会无意间转换为
yes<newline>o
。转出ѭ9可以防止该情况发生。 另外,如果您没有在URL中转义“ 7”,那么后面的所有内容都将被视为新参数。例如,
a=Q&A
表示\“参数
a
的值为\”
Q
\“,并且还有一个参数
A
\”而不是\“参数
a
的值为\”
Q&A
\“ \”。正确的转义方式是ѭ20。     ,需要斜杠来防止浏览器(尤其是较旧的浏览器)将正斜杠错误地解释为结束JavaScript标记。