我在一些继承的代码上运行 JSLint,并收到以下信息:
Problem at line 24 character 36: Unexpected '\'.
content = content.replace(/\<a href=/g, '<a target="blank" href=');
我已经用谷歌搜索了一段时间,发现这表明我不必在 Javascript 替换中转义。
HTML += '<div class="articleBody">'
+ this.myData.record[0][0][5].replace(/<\/?a[^>]*>/gi,'') + '</div>';
但是我的标准 regExp 介绍会建议他们这样做,就像其他一些随机网站一样,最后甚至专门谈论 Javascript(尽管它自己的例子表明 JSLink 是正确的)。
下一个断言字符匹配单词的开头和结尾,它们是:
< 和 >
尽管 Mozilla 的页面(replace()和RegExp)没有说它确实使用 < & > 进行断言,但我一直无法找到明确说明 Javascript在其 RegExp/replace 方法中故意不使用 < 进行断言的地方. 也就是说,我还没有找到任何地方说转义 < 的 Javascript 实现是错误的。 而且,确实,转义或未转义的< 似乎工作正常。诚然,任何未保留的转义字符似乎都可以正常工作——例如,\e === e,尽管 \t !== t wrt replace()。
旁白:我确实意识到并非所有 RegExp 实现都是平等的,并且意识到 Javascript 不做,例如,后视。但这是相当普遍的知识。我很难找到的断言。
有人可以帮我把这个放在床上吗?有没有地方可以发现It Is Written
< 被故意忽略为 Javascript RegExp 中断言的标记,而相反的任何行为都是不正确的行为?