裡面講到了優化正則起到提升性能的問題,但是能提升多少呢?
于是我去測試了,發現TMD幾乎微乎其微,我用1千字元串進行100萬次比對測試,優不優化根本沒差別。

這不科學,我白看了這麼多天正則,上天這是在玩弄我麼。
突然我想到了 compile 方法,然後去測試了下,奇迹出現了,果然優化過的快了不少。
但這是為什麼呢?
這裡說 compile 方法已被棄用!這不科學。。。
文章大意是說其實 直接 new RegExp 即可,compile 幾乎用不到。
于是乎我修改了代碼再來一次。
果然,直接 new RegExp 效果和 compile 是一樣的。
不過這隻是 nodejs 下的結果,我們去看看各個浏覽器下的結果如何吧。
chrome
firefox
IE11
IE8 (我調用了一個插件模拟控制台實作IE6-8調試輸出的)
很明顯,第一名是 chrome (以 reg22 那個優化過的為準),這個号稱武裝到牙齒的貨,果然夠new逼。
不過 firefox 這貨,竟然連 IE8 都比不過,是不是太慫了點。
優化過的 正則 比沒優化的快,那是肯定的。
但是 正則字面量 和 new RegExp 比,那就不是一個檔次了。
為什麼有如此大的差距呢?
其實我也沒搞清楚。
以前看到很多文章都說 字面量 會比 new 對象 形式效率高,但是在正則這裡,好像不是這麼回事。
不過也不能直接否認這個觀點,因為我一直都用字面量的,簡潔美觀,用着友善才是王道。
我覺得在資料量大,或者重複操作次數多的時候用 new RegExp 是很必要的。
因為你也看到了性能提升這麼多。
當然前提條件是你的正則必須優化,正則沒優化的情況,兩種差不多。
是以優化你的正則,然後用 new RegExp 可以大幅度提升程式的性能。
PS: IE11 是個特例,這貨從來不安套路出牌。
好了今天的分享完畢,你們都蠢蠢欲動了吧,快去把正則各種new起來吧。