什么时候所有的浏览器开始支持与string.replace(正则表达式,replacement_fu

2019-08-22 17:30发布

的JavaScript的第6版:权威指南 (弗拉纳根,2011):

ECMAScript的V3指定替换参数replace()可以是功能而不是字符串。

我在看一些代码,写于2005年,在一个复杂的解决方法已被用来替换字符串的一部分。 对于代码的注释清楚地表明,它最初使用的功能性replace()的方法,但该解决方法是必要的跨浏览器兼容性。

ECMAScript的V3在1999年就出来了,而且据我所知(从这个论坛帖子和这个博客帖子 ),ECMAScript的V3是整个主流浏览器自2001年下半年能否笔者一直是错的支持,或可有人揭示为什么这样一个解决方法可能在2005年已经有必要吗?

...

更新通过笔者的实际评论的代码表示:

在正则表达式lambda函数,目前有太多的浏览器有问题。

改变的代码来解决。

笔者代码适用于或运行这一业务 ,但代码本身可能是一个个人项目。

Answer 1:

这个答案是基于评论上面的问题(特别感谢kangax ,他的答案,如果他选择离开一个我可能会接受!)

虽然它可能是我一直在读“太多的浏览器”从字面上看,它也有可能是String.replace()与函数的参数是在Safari 2.x的(使用JavaScriptCore的)问题,在IEMac在5.x中在那个时候,这些问题的2005年。有证据表明在这里 ,并与前述方式浏览器的特定版本在这里 。

事实上由加文·基斯特纳第一这些网页中提到的解决方法是指其性能可能会在某些浏览器比功能更好的替代方法,如讨论在这里 。

然而,抛开性能,看来(我怀疑),其功能代替目前在所有的浏览器可以接受的。

非常感谢在这个问题上所有的评论者。



文章来源: When did all browsers start supporting the String.replace(regexp, replacement_function)?