1. 程式人生 > >瞭解JavaScript正則表示式

瞭解JavaScript正則表示式

正則表示式修飾符: i :執行對大小寫不敏感的匹配。

在這裡插入圖片描述

g :執行全域性匹配(查詢所有匹配而非在找到第一個匹配後停止)。

var reg = /ab/;
var str = "ababababab";

在沒有全域性匹配的時候,只返回一個

在這裡插入圖片描述

  var reg = /ab/g;
    var str = "ababababab";

g :執行全域性匹配(查詢所有匹配而非在找到第一個匹配後停止)。

在這裡插入圖片描述

m:執行多行匹配。

 var reg = /^ab/g;//在a前加上^:是指匹配以ab開頭的;
 var str = "ababababab";

在這裡插入圖片描述

沒有進行分行,所以就只能匹配一個。 如果對str用\n進行分行。再在reg上進行多行匹配

var reg = /^ab/gm;//在a前加上^:是指匹配以ab開頭的;
var str = "ababab\nabab";

這時候就能匹配兩個ab

在這裡插入圖片描述

[abc]:查詢方括號之間的任何字元,一個表示式代表一位,一個表示式就是一個區間

var reg = /[1234567890][1234567890][1234567890]/g;//查詢連續是三位數字的
    var str = "135fhh622bdhbshc511d"

在這裡插入圖片描述

[

^abc]	查詢任何不在方括號之間的字元。
    var reg = /[^1234567890][^1234567890][^1234567890]/g;//查詢不是連續是三位數字的
     var str = "135fhh622bdhbshc511d"

在這裡插入圖片描述

[0-9] 查詢任何從 0 至 9 的數字。

[a-z] 查詢任何從小寫 a 到小寫 z 的字元。

[A-Z] 查詢任何從大寫 A 到大寫 Z 的字元

[A-z] 查詢任何從大寫 A 到小寫 z 的字元。

var reg = /[0-9][a-z][A-Z][A-z]/g;
   var str = "12aZsFF12FEFzzz1dsd";

在這裡插入圖片描述

元字元: . 查詢單個字元,除了換行和行結束符。 \w 查詢單詞字元。 \W 查詢非單詞字元。 \d 查詢數字。 \D 查詢非數字字元。 \s 查詢空白字元。 \S 查詢非空白字元。 \b 匹配單詞邊界。 \B 匹配非單詞邊界。 \0 查詢 NUL 字元。 \n 查詢換行符。 \f 查詢換頁符。 \r 查找回車符。 \t 查詢製表符。 \v 查詢垂直製表符。 \xxx 查詢以八進位制數 xxx 規定的字元。 \xdd 查詢以十六進位制數 dd 規定的字元。 \uxxxx 查詢以十六進位制數 xxxx 規定的 Unicode 字元。

量詞: n+ 匹配任何包含至少一個 n 的字串。 在這裡插入圖片描述 n* 匹配任何包含零個或多個 n 的字串。 在這裡插入圖片描述 n? 匹配任何包含零個或一個 n 的字串。 在這裡插入圖片描述 n{X} 匹配包含 X 個 n 的序列的字串。 在這裡插入圖片描述 n{X,Y} 匹配包含 X 至 Y 個 n 的序列的字串。 在這裡插入圖片描述 能匹配5個就先匹配五個

n{X,} 匹配包含至少 X 個 n 的序列的字串。 n$ 匹配任何結尾為 n 的字串。 在這裡插入圖片描述 ^n 匹配任何開頭為 n 的字串。 在這裡插入圖片描述 以abc開頭,以abc結尾返回的結果是null,結束與開頭是指同一個,要以當前的abc開頭和以當前的abc結尾

?=n 匹配任何其後緊接指定字串 n 的字串。

?!n 匹配任何其後沒有緊接指定字串 n 的字串。

RegExp 物件屬性: global: RegExp 物件是否具有標誌 g。

ignoreCase : RegExp 物件是否具有標誌 i。

lastIndex :一個整數,標示開始下一次匹配的字元位置。

multiline :RegExp 物件是否具有標誌 m。

source :正則表示式的源文字。

RegExp 物件方法:

compile 編譯正則表示式。 exec 檢索字串中指定的值。返回找到的值,並確定其位置。 test 檢索字串中指定的值。返回 true 或 false。

支援正則表示式的 String 物件的方法

search 檢索與正則表示式相匹配的值。

match 找到一個或多個正則表示式的匹配。

replace 替換與正則表示式匹配的子串。

split 把字串分割為字串陣列。