所以我有一个标识URL的正则表达式:为什么这个正则表达式缓慢执行?
/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
但是当我用它来识别网址用户输入,只需使用.test
减缓向下翻页很大,即使根据MDN,它是supposed to be faster than exec。我是否使用测试正则表达式的过时方法?有没有更快的方法,我不知道?还是我的正则表达式真的很长很复杂?
这是JSFiddle。
编辑: 注意到在Chrome20.7秒,V24 1:48.5在Internet Explorer 9
它使用Firefox 18为我快速执行。您使用哪种浏览器? – Vulcan 2013-02-20 05:06:51
我使用的是Chrome v24。 – Polyov 2013-02-20 05:07:51
'([\/\ w \ .-] *)*'< - 回溯地狱,有2层'*'。我在某处看到Firefox实现了一些限制。 – nhahtdh 2013-02-20 05:09:25