JavaScript中使用Regex

來源:互聯網
上載者:User

標籤:

      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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.