全手打原創,轉載請標明出處:https://www.cnblogs.com/dreamsqin/p/10881659.html,多謝~=。=
(1)直接量字符
字符 |
匹配 |
字母和數字字符 |
自身 |
\o |
NUL字符 |
\t |
制表符 |
\n |
換行符 |
\v |
垂直制表符 |
\f |
換頁符 |
\r |
回車符 |
\xnn |
由十六進制數nn指定的拉丁字符,\x0A=\n |
\uxxxx |
由十六進制數xxxx指定的Unicode字符,\u0009=\t |
\cX |
控制字符^X,\cJ=\n |
(2)字符類
字符 |
匹配 |
[…] |
方括號內的任意字符 |
[^…] |
不在方括號內的任意字符 |
. |
除換行符和其他Unicode行終止符之外的任意字符 |
\w |
任何ASCII字符組成的單詞 [a-zA-Z0-9_] |
\W |
任何不是ASCII字符組成的單詞 [^a-zA-Z0-9_] |
\s |
任何Unicode空白符 |
\S |
任何非Unicode空白符的字符 |
\d |
任何ASCII數字,[0-9] |
\D |
除了ASCII數字之外的任何字符 [^0-9] |
[\b] |
退格直接量 |
(3)重復字符(貪婪匹配)
字符 |
含義 |
{n,m} |
匹配前一項至少n次,但不能超過m次 |
{n,} |
匹配前一項至少n次或者更多次 |
{n} |
匹配前一項n次 |
? |
匹配前一項0次或者1次(可選項) {0,1} |
+ |
匹配前一項1次或者多次 {1,} |
* |
匹配前一項0次或者多次(不限次) {0,} |
非貪婪匹配:盡可能少的匹配
??、+?、*?、{n,m}?
(4)選擇、分組、引用字符
字符 |
含義 |
| |
選擇,匹配左右子表達式(從左往右,若左邊匹配則忽略右邊) |
(…) |
組合 |
(?:…) |
只組合 |
\n |
和第n分組第一次匹配的字符相匹配 |
(5)錨字符
字符 |
含義 |
^ |
匹配字符串的開頭 |
$ |
匹配字符串的結尾 |
\b |
匹配一個單詞的邊界 Eg:\bhi\b |
\B |
匹配非單詞邊界的位置 |
(?=p) |
正向先行斷言,要求接下來的字符都與p匹配,但不包括p那些字符 |
(?!p) |
負向先行斷言,要求接下來的字符不與p匹配 |
(6)修飾符
字符 |
含義 |
i |
執行不區分大小寫的匹配 |
g |
執行全局匹配,找到所有匹配 |
m |
多行匹配模式 |
Eg:/java$/im → “java”或者“Java\nis fun”
(7)String對象
方法 |
示例 |
返回 |
特殊 |
search() |
“JavaScript”.search(/script/i) 返回4 |
第一個與之匹配的子串的起始位置,找不到則返回-1 |
不支持全局檢索,忽略修飾符g |
replace() |
text.replace(/javascript/gi,“JavaScript”) text.replace(/“([^”]*)”/, ‘“$1”’) |
替換后的字符串 |
$數字 參數若非正則表達式,則直接搜索 |
match() |
“1 plus 2 equals 3”.match(/\d+/g) 返回[“1”, “2”, “3”] |
由匹配結果組成的數組,未匹配則返回null |
非全局搜索時,a[0]存放完整匹配,a[1]存放a[0]與第一個括號括起來表達式相匹配的子串,所以a[n]存放的是$n的內容 |
split() |
“123,456,789”.split(“,”) 返回[“123”, “456”, “789”] “1, 2, 3, 4, 5”.split(/\s*,\s*/) 返回[“1”, “2” ,“3”, “4”, “5”] |
拆分后的子串數組 |
參數是正則表達式時,可以指定分隔符,允許留白 |
(8)RegExp對象
方法 |
示例 |
返回 |
特殊 |
regExp() |
var zipcode=new RegExp(“\\d{5}”, “g”) |
RegExp對象 |
第一個參數正則表達式主體部分(兩斜線之間) 第二個參數可選,修飾符 “\”轉義字符前綴 |
exec() |
var pattern=/Java/g; var text=”JavaScript is more fun than Java!”; var result=pattern.exec(text); |
同match。 數組.index:發生匹配的字符位置 數組.input:引用正在檢索的字符串 |
數組第一個元素為與正則表達式匹配的字符串,余下的是與圓括號內的子表達式匹配的字符串。 同一個正則表達式第二次調用exec()時,將從lastIndex出開始檢索。 |
test() |
var pattern=/java/I; pattern.test(“JavaScript”); |
只要存在匹配就返回true,否則返回false |
也可使用lastIndex屬性 |
屬性 |
含義 |
類型 |
source |
正則表達式的文本 |
只讀字符串 |
global |
是否帶有修飾符g |
只讀布爾值 |
ignoreCase |
是否帶有修飾符i |
只讀布爾值 |
multiline |
是否帶有修飾符m |
只讀布爾值 |
lastIndex |
若有修飾符g,該屬性存儲在整個字符串中下一次檢索的開始位置 |
可讀/寫整數(exec和text方法會用到) |