免責聲明:我的問題是不是集中在演習中,這只是一個例子(但如果你對自身例如什麼有趣的提示,隨時分享!)。在RegExp#test中使用捕獲組是否存在性能損失?
說我在JavaScript中解析一些字符串與正則表達式的工作,我的主要焦點是性能(速度)。
我有一塊正則表達式的,檢查的數字串,然後用Number
如果它的數字解析:
if (/^\[[0-9]+]$/.test(str)) {
val = Number(str.match(/^\[([0-9]+)$/)[1]);
}
注意如何條件測試沒有圍繞數字的捕獲組。這導致寫出基本相同的正則表達式兩次,除了第二次捕獲組。
我想知道這是;並增加了捕獲組在條件旁邊test()
使用正則表達式以任何方式影響性能?我只想在兩個地方使用捕獲正則表達式,只要沒有性能問題。
而且到了一個問題,爲什麼我做test()
然後match()
而不是match()
和檢查null
;我想在發生錯誤時儘可能快地進行解析,但在碰到問題時可以慢一點。
如果不是從上面清楚的,我指的是JavaScript的正則表達式引擎 - 儘管如果多個引擎不同,因爲它會是不錯的太瞭解。我在這裏專門研究Node.js,它應該在JS引擎中有所不同。
在此先感謝!