標籤:
Regex又叫正規標記法,是一種表達文字模式的方法。通常是使用單個字串來描述,匹配一系列符合某個規則的字串。Regex是對字串進行操作並且返回結果的一種工作方式,很多程式設計語言都對其進行了設計,而在JavaScript中對Regex的實現是基於perl的文法規則進行構建的。記得教我編程的老師說過“道士的驅魔符,醫生的處方單,程式員的Regex”稱為三個行業奇蹟,表示非行業內的人很難弄懂到底是什麼意思。其實Regex還是很容易入門的,但是要精通的話還是需要話一些時間的。
現在有這樣的一個需求,有一個字串,我們需要將字串中的數字全部挑選出來並且儲存到數組中去,不用Regex的情況下我們可以考慮使用JavaScript的字串函數進行實現,代碼如下所示:
var str = "ash1kj27ja875jsow5096hikjhs1pols65787";var arr = [];var temp = ""; //臨時儲存變數for(var i=0;i<str.length;i++){ if(str[i]<="9" && str[i]>="0"){ temp+=str[i]; }else{ temp && arr.push(temp); temp = ""; }}temp && arr.push(temp);console.log(arr);
執行結果如下:
字串是可以進行比較操作的,所以我們可以利用只有數字才會大於"0"且小於"9"的規律順利尋找出所有的數字。使用字串方法來操作的缺點有以下兩個:
1,操作繁瑣,如果需要進行的操作很複雜的話需要比較好的演算法設計才能完成。
2,效率很低,不斷地執行迴圈操作非常影響程式的效能。
而使用Regex來操作的話就就簡單多了,代碼如下所示:
var str = "ash1kj27ja875jsow5096hikjhs1pols65787";console.log(str.match(/\d+/g));
使用Regex兩行代碼就能達到一樣的效果,而且執行效率還很高,所以還是覺得Regex確實是神兵利器,下面我們慢慢來說JavaScript中的Regex的那些事。
JavaScript中使用Regex