Tips: 字元串方法match()返回根據正則表達式匹配到的結果 1. 常用符號/鏈接標誌 1.1 開頭結尾標誌 ^ 以...開頭 $以...結尾 const reg1 = /^\d/ // 以數字開頭 const reg2 = /^[a-z]/ // 以小寫字母開頭 const reg3 = / ...
Tips: 字元串方法match()返回根據正則表達式匹配到的結果
1. 常用符號/鏈接標誌
1.1 開頭結尾標誌
^
以...開頭$
以...結尾
const reg1 = /^\d/ // 以數字開頭
const reg2 = /^[a-z]/ // 以小寫字母開頭
const reg3 = /\d$/ // 以數字結尾
const reg4 = /[a-z]$/ // 以小寫字母結尾
const str = '123abc'
str.match(reg1) // '1'
str.match(reg2) // ''
str.match(reg3) // ''
str.match(reg4) // 'c'
1.2 多次匹配(限定符)
+
號,匹配前面的字元1 ~ n次*
號,匹配前面的字元0 ~ n次?
號,匹配前面的字元0 ~ 1次{n,}
,匹配前面的字元至少n次{n,m}
,匹配前面的字元n ~ m次
const reg1 = /\d/ // 匹配單個數字
const reg2 = /\d+/ // 匹配1~n個數字
const reg3 = /\d*/ // 匹配0~n個數字
const reg4 = /\d?/ // 匹配0~1個數字
const reg5 = /\d{2,}/g // 匹配至少2個數字(g全局匹配)
const reg6 = /\d{3,6}/g // 匹配3~6個數字
const str = '12345678abc98def7'
str.match(reg1) // '1'
str.match(reg2) // '12345678'
str.match(reg3) // '12345678'
str.match(reg4) // '1'
str.match(reg5) // ['12345678', '98']
str.match(reg6) // '123456'
2. 字元
2.1 普通字元
[abc]
匹配[]中的所有字元[^abc]
匹配除去[^]中的所有字元[A-Z]
匹配某個區間的所有字元.
匹配除去換行符(\n、\r)的所有字元\w
匹配字母、數字、下劃線。等價於[A-Za-z0-9_]
const reg1 = /[ame]{3}/ // 匹配ame三個字元
const reg2 = /[^N]+/ // 匹配除去N的所有字元
const reg3 = /[a-z]+/ // 匹配a-z這個區間的所有字元
const reg4 = /.+/ // 匹配除去換行符(\n、\r)的所有字元
const reg5 = /\w{3,6}/ // 匹配字母、數字、下劃線。3 ~ 6個字元
const str = 'Name1-2_3'
str.match(reg1) // 'ame'
str.match(reg2) // 'ame1-2_3'
str.match(reg3) // 'ame'
str.match(reg4) // 'Name1-2_3'
str.match(reg5) // 'Name1'
2.2 非列印字元
\d
,匹配一個數字\n
,匹配一個換行符\s
,匹配任何空白字元\S
,匹配任何非空白字元
3. 修飾符
- 修飾符(flags)用於指定額外的匹配策略。
- 語法:
/pattern/flags
3.1 常用修飾符
i
,ignore不區分大小寫g
,global全局匹配m
,multi line多行匹配
const reg1 = /[a-z]+/i // 匹配字母,不區分大小寫
const reg2 = /[A-Z]+/ // 匹配大寫字母
const reg3 = /[A-Z]+/g // 匹配大寫字母,且全局
const str = 'AncientChina'
str.match(reg1) // 'AncientChina'
str.match(reg2) // 'A'
str.match(reg3) // ['A', 'C']
參考
https://www.runoob.com/regexp 菜鳥教程