這次帶給大家JavaScript正規表示式小技巧,使用JavaScript正規表示式的注意事項有哪些,以下就是實戰案例,一起來看一下。
正規表示式作為一種匹配處理字串的利器在很多語言中都得到了廣泛實現和應用.這篇文章主要介紹了JavaScript正則表達式函數總結,需要的朋友可以參考下
/* 測試環境:Chrome 63.0.3239.132 */
JS中正規物件修飾符可選值為:"i" "g" "m",即忽略大小寫進行全域匹配多行模式
JS中正規表示式支援的元字元:
1:枚舉方括號表達式,範圍方括號表達式,枚舉取反方括號表達式,範圍取反方括號表達式
2:. \w \W \d \D \s \S \b \B \n \r \f \v \888 \uffff \xff
3 :n? n+ n* n{a} n{a,} n{a,b}及這些量詞的非貪心模式
4:^ $ (?!) (?=) (?:)
其他:
1:JS中引用分組請使用\number,不支援''和<>這樣的命名分組
2:不支援量詞的佔有模式
3:不支援逆向環視
4:方括號表達式中複合表達式支援如下:
[abc0-9] [abc\d] [\d\w^&]等等類似的
5:支援修飾符組合,例如gim mig gi ig等等,無順序要求
JS正規對象屬性:
global:該物件是否開啟全域匹配,一個布林值
ignoreCase:該物件是否開啟忽略大小寫,一個布林值
multiline:該物件是否開啟多行模式,一個布林值
lastIndex:該物件下一次開始匹配的位置,即上一次匹配結束的位置,一個正整數
source:正則表達式的源文本,即/regexp/flag的regexp,不包含修飾符,一個字串
建立正規表示式:
1:myreg = new RegExp(patternString[,globalFlags]);
2:myreg = /yourRegexp/globalFlags;
JS中正規表示式常用方法:
在RegExp物件中:
1:test(yourString);
定義:偵測一個字串是否符合某個模式。
其他說明:此方法將忽略"g"標誌和正規物件的lastIndex屬性(即總是從開頭找起),只要查找到符合模式的字串即符合成功。
2:exec(yourString);
定義:檢索字串中的正規表示式的符合。
其他說明:若沒開啟"g"標誌,只找一次,不修改正規對象的lastIndex屬性,傳回一個對象,包含下標0、index、input,這時屬性和match等價;開啟"g",將修改正規物件的lastIndex屬性為本次找到的子字串的結尾位置,傳回一個和沒開啟"g"一樣的物件。 (你可以自行修改正規物件的lastIndex屬性來規定exec開始尋找的位置。)
在String物件中:
1:search(yourRegexpOrString);
#定義:檢索字串中與指定的子字串或正規表示式相符的子字串。
其他說明:此方法將忽略"g"標誌和正規物件的lastIndex屬性(即總是從開頭找起),傳回找到的第一個字元的位置,如果找不到返回-1。
2:match(yourRegexpOrString);
定義:在字串內尋找一個或多個與正規表示式相符的字串,並傳回一個物件。 (忽略laseIndex屬性)
其他說明:若沒開啟"g"標誌,將只查找第一個匹配的字串,傳回一個對象,包含下標0、index、input,其中下標0等價於index,input是String的參考;開啟"g",回傳一個數組,數組的length是匹配的字串個數,每個元素是每個匹配的起始字元位置。
3:replace(yourRegexpOrString,placementString);
定義:用於在字串中用一些字元取代另一些字符,或取代一個與正規表示式相符的子字串。
其他說明:如果沒有"g"標誌只會替換一次,並且如果參數是字串而不是正規物件始終替換一次。傳回一個字串,為用placementString取代yourRegexpOrString後的結果。 placementString中$有特殊用途,請見下表:
$1、$2、...、$99 | regexp中捕獲的引用分組。 |
$& | 本次符合的文字。 |
$` | 本次符合到的子字串左邊的文字。 |
$' | 本次符合到的子字串右邊的文字。 |
$$ | $本身。 |
該方法的第二個參數可以為函數,每次匹配都會呼叫函數,並以函數傳回值為placement,共傳入4個參數,第一個參數為本次匹配的子文本($&),中間參數為子表達式匹配字串,個數不限($i),倒數第二個參數為本次匹配到的子文本下標位置,最後一個參數表示執行place方法的字串本身。
4:split(yourRegexpOrString[,howMany]);
定義:把一個字串分割成字串值的陣列。
其他說明:是arr.join(separatorString)反操作,如果傳入"",則每個字元都會被分隔到陣列。 howMany指定傳回數組的個數。
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是JavaScript正規表示式小技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!