Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么';难道你没有后顾之忧吗?_Javascript_Regex_Lookbehind_Negative Lookbehind_Missing Features - Fatal编程技术网

Javascript 为什么';难道你没有后顾之忧吗?

Javascript 为什么';难道你没有后顾之忧吗?,javascript,regex,lookbehind,negative-lookbehind,missing-features,Javascript,Regex,Lookbehind,Negative Lookbehind,Missing Features,我知道有各种各样的解决方法,但奇怪的是,JavaScript中没有一个非常常见/有用的正则表达式特性 这有什么原因(性能问题、实现问题等)吗?或者它不是在开始时添加的,现在已经太晚了/不需要了吗?很简单,它只是没有 语言不能具有其他语言中的所有可用功能 为什么JavaScript没有静态类型?为什么它不支持多重继承?它只是按原样建造的。为什么?JavaScript正则表达式引擎显然不支持lookbehinds 但是,您可以使用库或使用String模拟lookback的使用。和可选的捕获组。因为没

我知道有各种各样的解决方法,但奇怪的是,JavaScript中没有一个非常常见/有用的正则表达式特性


这有什么原因(性能问题、实现问题等)吗?或者它不是在开始时添加的,现在已经太晚了/不需要了吗?

很简单,它只是没有

语言不能具有其他语言中的所有可用功能


为什么JavaScript没有静态类型?为什么它不支持多重继承?它只是按原样建造的。

为什么?JavaScript正则表达式引擎显然不支持lookbehinds


但是,您可以使用库或使用String模拟lookback的使用。和可选的捕获组。

因为没有足够的JS开发者进入Netscape的办公室,于是ECMA国际发布了如下标语:

我们现在就要求向后看!现在正是寻找落后者的时候

但现在还不晚。您可以启动一个移动,许多跟随
regex
标记的人将紧随其后


引领我们前进,冠军!:)

为什么0.1+0.2不是0.3?您不想为regexp引擎实现look back的一个很好的原因是它使它变得非常规(Perl调用其字符串匹配语法regex,而不是regexp的一个原因)。具体来说,look behinds使得将regex编译成状态机变得不可能。如果你做不到这一点,那么你就会对所谓的病态缓慢的表达敞开心扉,而没有后视的引擎可以避免这种表达。此外,即使在正常情况下,非状态机引擎也会变慢。例如,Tcl已经被基准测试为比Perl正则表达式快得多。@slebetman感谢您提供了一个实际的好理由,除了“它只是没有”。你应该提交你的评论作为回答:)这可能是最好的提问时间。在发布我的问题时,我不知道有多少正则表达式的味道。这就是说,JavaScript看起来有点超前,所以它似乎也可以使用lookbehind。我只是想知道除了“因为它没有”之外是否还有其他原因,比如性能问题。