代码:var foo = /\</;
当我转到 jslint.com 时然后输入,我得到:
Problem at line 1 character 12: Unexpected '\'.
它曾经告诉我Unexpected escaped character '<' in regular expression.
但时代变了。
所以我很好奇,为什么?如果你尝试 var foo = /\>/;
它不在乎,这与<
有什么关系? ?
最佳答案
如果你有两个简单的 div,区别就很明显了:
<div> < </div> <!--Missing right angle bracket, bad markup-->
<div> > </div> <!--No problem, just a greater than text node-->
JSLint 不假定脚本是一个独立的文件或位于 HTML 文档的脚本标记内。在标记语言中,例如 XUL , MXML , XAML , TVML , LZX , XHTML5或 SVG , script 标签内容被视为上例中的第一个 div,因此左尖括号看起来像是标签的开始。在这些语言中,使用实体替换或 CDATA block 来包裹左尖括号和符号字符:
<script>
if ( -1 < 0 && true !== false) {}
</script>
<script>
<![CDATA[
if ( -2 < 0 && true !== false) {}
]]>
</script>
引用资料
关于javascript - 为什么当我在 RegEx 中转义 < 字符时 jslint 会报错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8019216/