JavaScript:好的部分; 为什么前瞻不好?

jil*_*wit 17 javascript regex regex-lookarounds

我正在阅读Douglas Crockfords Javascript:The Good Parts,我刚刚完成了正则表达式章节.在本章中,他称之为JavaScript \b,积极的前瞻(?=)和消极的前瞻(?!) "不是一个好的部分"

他解释了\b不好的原因(它\w用于单词边界查找,并且\w对于使用unicode字符的任何语言都失败了),这看起来对我来说是一个非常好的理由.

不幸的是,正面和负面前瞻不好的原因被遗漏了,我无法想出一个.掌握正则表达式向我展示了前瞻性所带来的力量(当然也解释了它带来的问题),但我无法想到任何可以将其视为"不是很好的部分"的东西.

任何人都可以解释为什么JavaScript(正|负)前瞻或(正|负)前瞻一般应该被认为是"不好"?

看来我不是唯一有这个问题的人:.

Ala*_*ore 10

也许是因为Internet Explorer 永远存在错误的前瞻实现.对于任何编写有关JavaScript的书籍的人来说,任何在IE中不起作用的功能都可能不存在.

  • 我不知道Crockford先生在写这篇文章时的想法,但这似乎是在javascript中小心使用lookahead的最好理由.然而,将错误的实现归咎于语言会感觉有点不公平. (9认同)
  • 请记住:JavaScript可以在网络外部使用,因为node.js证明了! (6认同)