說明
- 最近的業務正則較多,特此回顧一下基本用法
- 適用於 正規表示式的有經驗的朋友。
匹配任意字元
let reg = /a../g;
reg.test('aqw');
複製程式碼
匹配字母和數字
let reg = /\w/g;
reg.test('1231qwesadFSD');
let regNumber = /\d/g;
regNumber.test('31241320');
複製程式碼
集合和匹配多個
let bad = /yo/g;
let reg = /[Yy][Oo]+/g;
reg.test('Yo');
reg.test('yO');
複製程式碼
單詞邊界
let reg = /yo{1,4}\b/;
reg.test('yo');
reg.test('yoo');
reg.test('yooo');
reg.test('yooooooooooo');
複製程式碼
分組
let reg = /(ad)..(cd)/g;
'adqwcd'.replace(reg,'$1 123 -- $2')
複製程式碼
匹配不捕獲
- 這樣的話第一組就會 undefined,第二組變成第一組。只匹配不捕獲分組
let reg = /(?:ad)..(cd)/g;
'adqwcd'.replace(reg,'$1 123 -- $2')
複製程式碼
正向預查(匹配右邊)和反向預查(匹配左邊)
let reg = /\d+(?=元)/
let reg = /(?<=¥|\d)\d+/
複製程式碼
速查表
符號 |
描述 |
例子 |
能匹配 |
不能匹配 |
^ |
行首或字串開始 |
^yo |
yo |
ayo |
$ |
行末或字串結束 |
yo$ |
yo |
yop |
\b |
單詞邊界 |
\byo\b |
mu yo mu |
muyomu |
\B |
非單詞邊界 |
\Byo\B |
muyomu |
mu yo mu |
符號 |
描述 |
例子 |
能匹配 |
不能匹配 |
(?=xxx) |
正向肯定預查,從任何匹配xxx的字串開始處匹配查詢字串 |
yo(?=o) |
yoo |
yo |
(?!xxx) |
正向否定預查,從任何不匹配pattern的字串開始處匹配查詢字串 |
yo(?!o) |
yo |
yoo |
(?<=xxx) |
反向肯定預查,與正向肯定預查類擬,只是方向相反 |
(?<=y)o |
yo |
yoo |
(?<!xxx) |
反向否定預查,與正向否定預查類擬,只是方向相反 |
(?<!goo)d |
mood |
good |
符號 |
描述 |
例子 |
能匹配 |
不能匹配 |
[ ] |
字符集合 |
[ace] |
a, c, e |
d |
[ - ] |
字元範圍 |
[a-c] |
a, b, c |
d |
[^ ] |
不包含的字符集合 |
[^abc] |
d, e |
a, b, c |
. |
匹配除斷行外的任何字元 |
yo. |
yoo, yop, yoh |
yo |
\s |
空白字元,等於[\n\r\f\t ] |
la\sla |
la la |
lala |
\S |
非空白字元,等於[^\n\r\f\t] |
la\sla |
lala |
la la |
\d |
數字 |
\d{2} |
23 |
1a |
\D |
非數字 |
\D{3} |
yoo, abc |
yo1 |
\w |
單詞,等於[a-z-A-Z0-9_] |
\w{4} |
v123 |
v12.3 |
\W |
非單詞,等於[^a-z-A-Z0-9_] |
.$%? |
.$%? |
.ab? |
特殊字元 |
描述 |
\n |
斷行 |
\r |
回車符 |
\t |
製表符 |
\v |
垂直製表符 |
\f |
換頁 |
[\b] |
退格 |
符號 |
描述 |
例子 |
能匹配 |
不能匹配 |
| |
或,其一 |
a|b |
a, b |
c |
(xxx) |
匹配xxx並獲取這一匹配 |
yo(o|p) |
yoo 或 yop |
yoh |
(?:xxx) |
匹配xxx但不獲取這一匹配 |
y(?:o) |
yo |
ya |
+ |
重複1次或多次 |
yo+ |
yo, yooo |
y |
* |
重複0次或多次 |
yo* |
y, yoo |
yop |
? |
出現0次或1次 |
yo? |
y, yo |
ye |
?? |
?的懶惰模式,儘可能少匹配 |
yoo?? |
yo |
yoo |
+? |
+的懶惰模式 |
yo+? |
yo |
yoo |
*? |
*的懶惰模式 |
yo*? |
y |
yo |
{n} |
重複n次 |
yo{2} |
yoo |
yooo |
{n,m} |
重複n到m次 |
yo{1, 3} |
yo,yooo |
yoooo |
{n,} |
重複至少n次 |
yo{2,} |
yoo, yooo |
yo |