当我在RegEx中转义<字符时,为什么jslint会抱怨?

goa*_*ker 6 javascript jslint

代码: var foo = /\</;

当我去jslint.com并输入时,我得到:

Problem at line 1 character 12: Unexpected '\'.

它曾经告诉我,Unexpected escaped character '<' in regular expression.但时代已经改变.

所以我只是好奇,为什么?如果你尝试var foo = /\>/;它不关心,有什么处理<

Pau*_*tte 3

如果你有两个简单的 div,区别就很明显:

<div> < </div> <!--Missing right angle bracket, bad markup-->
<div> > </div> <!--No problem, just a greater than text node-->
Run Code Online (Sandbox Code Playgroud)

JSLint 不假定脚本是独立文件或位于 HTML 文档的脚本标记内。在XULMXMLXAMLTVMLLZXXHTML5SVG等标记语言中,脚本标签内容被视为上例中的第一个 div,因此左尖括号看起来像标签的开头。在这些语言中,使用实体替换或 CDATA 块来包裹左尖括号和 & 字符:

<script> 
if ( -1 &lt; 0 &amp;&amp; true !== false) {} 
</script>

<script>
<![CDATA[
if ( -2 < 0 && true !== false) {}
]]>
</script>
Run Code Online (Sandbox Code Playgroud)

参考