理解元字符
. 匹配除了 \n:换行、 \r:回车 以外的字符,加s之后,可以匹配到换行
let reg = /sdfdfdfdsd/gs
\ 转义符:将特殊含义转换成字面量含义,比如 /<div>.*<\/div>/
* 出现0次或者多次
? 出现0次或者1次
+ 出现1次或者多次
^ 严格匹配开头,注意在字符集合中的使用
let str = 'sdjfsdkfjhd'
let reg = /[^sd]/g
console.log(str.replace(reg, '*')) // sd**sd****d 会匹配除了 sd 以外的字符,同 非 关系
$ 严格匹配结尾
\w 匹配数字、字母、下划线 同 a-zA-Z_0-9
let str = 'as7_dolijgsdlfkjg45678899dfashk'
let reg = /^a\w+k$/g // 以a开头并且以k结尾,中间是数字、下划线、字母的一个或多个字符
[] 字符集合
let str = 'ghjasdfsd'
let reg = /^[gf]/g // 以g或者f开头的字符
\d 匹配数字,同 [0-9]
\b 边界符,除了 \w 以外的
let str = 'this is aotuman'
let reg = /\bis\b/g
() 分组
{} 出现的次数,{2} 出现两次,{1,}1次到多次,{*,}0次到多次
let str = '2022-10-20' // 2022-1-9
let reg = /(\d{4})-(\d{1,2})-(\d{1,2})/g
let res = str.replace(reg,'$1/$2/$3')
console.log(res) // 2022/10/20
i 忽略大小写 let reg = /h/gi