最近我們遇到了一個錯誤,在一個開發人員將一個RegExp文字變成了一個構造函數調用之後,我想知道爲什麼有什麼區別。 確切代碼是Javascript正則表達式文字和構造函數的區別
var parts = new RegExp("/rt:([^@]+)@(\d+)/").exec(tag);
VS的
var parts = /rt:([^@]+)@(\d+)/.exec(tag);
原始當tag
是例如rt:[email protected]
,第一(童車)調用返回null
,而第二個返回["rt:[email protected]", "60C1C036-42FA-4073-B10B-1969BD2358FB", "00000000077"]
不用說,我恢復了這個變化,但我想知道爲什麼首先有這樣的差異。
很好的答案,想我會刪除我的!如果你需要重用一個特定的RegExp會怎麼樣 - 是不是使用構造函數的好時機?或者你會說'var resuasableRegex =/.. pattern ../;'? –
@ElRonnoco:的確,您也可以爲變量指定一個正則表達式。 –
感謝您的信息。下次我會更好地研究這些字符串,以確保不需要轉義字符。 無論如何,文字確實容易得多。 –