javascriptRegex和字串RegExp

來源:互聯網
上載者:User

標籤:擷取   位置   tco   多行   技術分享   注意   構造   大型   預設   

 

    這篇文章主要介紹了javascriptRegex和字串RegExp and String(一)的相關資料,需要的朋友可以參考下    前言    Regex是javascript非常重要和常用的功能,在jquery等大型架構中用的非常頻繁,最近抽時間學習瞭解了相關知識,記錄下來與需要的朋友分享。     思維導圖:                     RegExp(Regex)的建立方式    可以通過兩種方式建立一個RegExp,具體如下:    通過/…./的方式來建立Regex(注意: /……/兩邊是沒有單引號或雙引號的)    通過RegExp構造方法來建立一Regex    為了更好的描述模式,Regex提供了3個標識,分別是: g/i/m    g: 全域匹配:在整個字串中匹配,而不是在第一次匹配後之後停止    i: 忽略大小寫匹配    m: 對多行字串中的每一行,應用行首和行末的特殊字元(分別是^和$)    具體看參照下面代碼加深理解:                                              RegExp執行個體的主要屬性    根據RegExp的建構函式,我們大概也能猜到RegExp的主要屬性,關於執行個體屬性,瞭解下就可以了。但有一點要注意:這     些執行個體屬性是不能通過for in進行遍曆擷取的。    可參照下面代碼加深理解:                                    

 

    RegExp執行個體的主要方法 - test    根據該方法非常簡單,只有一個參數,常用來驗證輸入的參數與Regex模式是否匹配,如果匹配返回true,否則返回     false. 可參照下面代碼加深理解:

                                            

    RegExp執行個體的主要方法 - exec    法該方法是一個非常常用的方法,需要好好理解。它只接收一個參數,即要匹配的字串,傳回值卻是一個數組arr,數組裡儲存的是第一個匹配項的相關資訊,包括:    input: 要匹配的字串,exec方法的輸入值    index:匹配性在字串中的位置    arr[0]: 模式比對的字串    arr[1]…arr[n]: 第n個擷取的群組字串    使用該方法時要注意:如果在Regex中未指定全域標誌g,則每次執行始終返回的都是第一個匹配項,如果設定了全域標誌g,每次調用exec,則會在字串中繼續尋找新匹配項    可參照下面代碼加深理解:

                                     

    RegExp建構函式屬性    關於函數屬性,可以參照其它程式設計語言(如java)中類的靜態屬性來理解,這些屬性被所有的RegExp執行個體共用,也就是所有的RegExp都可以訪問和修改這些屬性,當某個執行個體執行test或exec方法時,這些屬性的值也將跟著發生變化    關於這些屬性,我們可以按照自己的理解記憶:    input : 需要進行模式比對的字串,test或exec方法的輸入參數。 參數別名: $-    lastMatch : 最近一次匹配項 。 參數別名:$&    leftContext : 匹配項左邊的字串。參數別名:$`    rightContext : 匹配項右邊的字串 。 參數別名:$‘    1,2,$3….: 擷取的群組對應的字串 。    當然這些值,完全可以通過RegExp執行個體執行exec返回的結果計算得到,那為什麼要在建構函式RegExp中設定這些屬性呢?*    可參照下面代碼加深理解:                                         RegExp - 元字元    與其它語言中的Regex類似, jsRegex中也存在一些元字元,這些字元有特殊的用途和含義,所以在使用的過程中,需要對這些字元進行轉義,通過在這些字元前加上‘\‘ 進行轉義處理. JS正則表達是的元字元有:    ( [ { \ ^ $ | ) ? * + . ] }     RegExp - 貪婪匹配和懶惰匹配    貪婪匹配就是在Regex的匹配過程中,預設會使得匹配長度越大越好。在JSRegex中,懶惰限定符是 ‘?‘ ,在模式中添加 ‘?‘ 則要求是懶惰匹配。具體參照下面代碼來理解:                                    

                              

    以上內容是小編給大家分享的javascriptRegex和字串RegExp and String。

javascriptRegex和字串RegExp

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.