這里主要記錄一些常規(guī)內容疏之。參考地址
特殊字符
所有特殊字符要匹配自己本身盛末,前面需要加一個反斜杠
str.match(reg):返回單行字符串第一個匹配的內容
reg.test(srt):返回布爾變量值,匹配到為true,否則false
- 匹配除換行符 \n 之外的任何單字符:.
const str = 'abc1a23',reg = /a./;
// 匹配a字母加上后面的任意單個字符
str.match(reg) // ab a2 都滿足
- 匹配單行字符串的結尾位置:$
const str = 'abc1aab3',reg = /ab3$/;
// 匹配最后字符為ab3的整個字符串
str.match(reg) // ab3
- 標記一個子表達式的開始和結束位置:()
const str = 'abc1abbc3',reg = /a(bc)/;
// 匹配a字母加上bc字母
str.match(reg) // abc
-
匹配前面的子表達式零次或多次:*
相當于{0,}
const str = 'abc1abbbcbcaccc3',reg = /ab*/;
// 匹配字母a加上0個或多個b字母
str.match(reg) // ab abbb a
-
匹配前面的子表達式一次或多次:+
相當于{1,}
const str = 'abc1abbbcbcaccc3',reg = /ab+/;
// 匹配字母a加上0個或多個b字母
str.match(reg) // ab abbb
- 匹配子表達式中的任意字符:[]
const str = 'abcb',reg = /[ab]/;
// 匹配字母a加上0個或多個b字母
str.match(reg) // a b b
-
匹配前面的子表達式零次或一次:?
相當于{0,1}
const str = 'abcba',reg = /ab?/;
// 匹配字母a加上0個或多個b字母
str.match(reg) // ab a
- 將前面一個字符標記為或特殊字符、或原義字符:\
const str = 'abcba.',reg = /a\./;
// 匹配字母a加上.
str.match(reg) // a.
- 匹配輸入字符串的開始位置:^
const str = 'abbc',reg = /^ab/;
// 匹配開頭字母a加上b字母
str.match(reg) // ab
- 標記限定符表達式的開始。要匹配:{n,m}
const str = 'abbbcabcabbc',reg = /ab{2,3}/;
// 匹配字母a加上兩個或三個字母b
str.match(reg) // abbb abb
- 指明兩項之間的一個選擇:|
const str = 'abbbcacc',reg = /ab|ac/;
// 匹配字母ab或ac
str.match(reg) // ab ac
修飾符(標記)
- 匹配不區(qū)分大小寫:i
const str = 'abbcABc',reg = /ab/i;
// 匹配字母ab或AB 或aB或Ab
str.match(reg) // ab
- 匹配不查找所有的匹配項:g
const str = 'abbcABabc',reg = /ab/g;
// 匹配字母ab
str.match(reg) // ab ab
- 多行匹配:m
const str = 'ab\ncd\nab',reg = /ab/m;
// 匹配字母ab
str.match(reg) // ab
- 特殊字符圓點 . 中包含換行符 \n:s
const str = 'ab\ncd\nab',reg = /ab.c/s;
// 匹配字母ab c
str.match(reg) // ab c
- 匹配 pattern 但不獲取匹配結果:(?:pattern)
const str = 'window1window23',reg = /window(?:1|2|30)/g;
// 匹配字母window 跟上后面的數(shù)字
str.match(reg) // window1 window2
- 正向肯定預查:(?=pattern)
const str = 'window1window23',reg = /window(?=1|2|30)/g;
// 匹配字母window 不跟上后面的數(shù)字
str.match(reg) // window window