天天看點

一個利用正規表達式進行代碼重構,去除備援代碼的例子

refact之前:大量的重複代碼

refact之後:用map消除了重複代碼。

現在的分支裡每次執行檢查都要先 var usRegx = /XXXX/. 實際上通過字面量定義了一個正規表達式對象,開銷比定義一個String大。其實沒必要每次都定義,可以把map定義在controller的一個全局屬性上。

執行這段代碼就可看出字元串常量和正規表達式字面量的性能差異:

var N = 100000000;
console.time("normal string");
for( var i = 0; i < N; i++){
var a = "a";
}
console.timeEnd("normal string");

console.time("regular exp");
for( var i = 0; i < N; i++){
var b = /^[0-9]{5}$|^[0-9]{5}-[0-9]{4}$/;
}
console.timeEnd("regular exp");           

本文來自雲栖社群合作夥伴“汪子熙”,了解相關資訊可以關注微信公衆号"汪子熙"。

繼續閱讀