[ABC]
匹配括号中字符,
const str = 'hello, 2019'
str.match(/[hello]/g) // ['h', 'e', 'l', 'l', 'o']
str.match(/[helo]/g) // ['h', 'e', 'l', 'l', 'o']
str.match(/[abcde123]/g) // ['e', '2', '1']
[A-Z]
区间匹配,匹配从A到Z 26个大写
const str = 'Hello, 2019'
str.match(/[A-Z]/g) // ['H']
[a-z]
匹配从a到z 26个小写
const str = 'Hello, 2019'
str.match(/[a-z]/g) // ['e','l', 'l', 'o' ]
[A-z]
匹配a-z和A-Z ,共52个大小写
const str = 'Hello, 2019'
str.match(/[A-z]/g) // ['H', 'e','l', 'l', 'o' ]
[a-Z]
错误的区间
Range out of order in character class
[A-Za-z0-9]
多个区间匹配,
const str = 'Hello, 2019'
str.match(/[A-Za-z0-9]/g) // ['H', 'e','l', 'l', 'o', '2', '0', '1', '9' ]
[^ABC]
匹配除括号以外的字符,
const str = 'hello, 2019'
str.match(/[^hello]/g) // [',', ' ', '2', '0', '1', '9']
str.match(/[^abcde123]/g) // ['h', 'l', 'l', 'o', ',', ' ', '0', '9']
修饰符
+
修饰符前面的字符出现次数 >=1,等价于 {1,}
*
修饰符前面的字符出现次数 >=0,等价于 {0,}
?
修饰符前面的字符出现次数 <=1,等价于 {0,1}(非贪婪限定符)
.
匹配任意字符
^
$
{n}
字符出现的次数
{n,m}
字符出现的次数区间
非打印字符
\d
匹配数字
\D
匹配非数字
\s
匹配空格和换行
\S
匹配非空格和非换行
\w
匹配单字字符(数字、字母、下划线)
\W
匹配非单字字符
\
转义字符
\f
匹配换页
\r
匹配回车
\n
匹配换行
\t
匹配水平制表符
\v
匹配垂直制表符
\
\