为什么javascript正则不支持反向预查?

JavaScript05

为什么javascript正则不支持反向预查?,第1张

查了一下,很有趣的是,原因应该是Javscript的发明者在设计js正则表达式的时候没有加进去。

根据他们讨论的邮件,Brendan Eich,就是Js发明者,在提交ECMAScript 3规范的时候,就没有加进反向预查,可能是忘了,可能是没主意,总之是记不清了;而另一位 Waldemar Horwat 提到,原因是当时他们参考了Perl的很多设计,但是当时时间很早(Perl的版本很老),反向预查在Perl里仍然是不稳定的功能,所以没有加进去。

于是到了现在,就仍然没有加进去。并没有明显的「为什么不加入支持」的原因,而只是大家都没注意这回事。终于在ES7有了关于支持反向预查的proposal,然而等到ES7真的可以稳定使用,就不知道要过多少年了。

如果你对更多信息感兴趣,可以从这两个页面开始探究:

参考来源(链接自行去空格)

ht tp:/ /stacko verflow.c om/questions/12273112/will-js-regex-ever-get-lookbehind

ht tp:/ /stacko verflow.c om/questions/30118815/why-are-lookbehind-assertions-not-supported-in-javascript

js查询结果,看你的排序是根据什么,不过现在多是前后端分离,你查询到的结果实际上是后端返回给你的,这个如果它接口没有规定排序的参数,js是无法修改数据顺序的,当然你可以使用遍历的方法来按某个参数排序,但是这样会降低性能,如果是后端返回的数据,建议直接返回排序好的数据