瞭解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 把字串分割為字串陣列。