共计 1156 个字符,预计需要花费 3 分钟才能阅读完成。
今天我们来讲一下正则表达式的基本使用
正则表达式的修饰符
i 执行对大小写不敏感的匹配
let a = ‘hEllo World’
let reg = /hello/i
console.log(reg.test(a)) // true
let str = ‘hello’
let reg1 = /Hello/i
console.log(reg1.test(str)) // true
let str1 = ‘hello’
let reg2 = /Hello/
console.log(reg2.test(str1)) // false
上面的第一个例子字符串 a 带有大写英文,而我们的匹配方式则为全部小写,我们会得到 true,第二个例子 str 字符串全部为小写,而匹配方式则为大小写混合也是得到 true,第三个则是不使用修饰符 i 的,得到为 false,所以 i 是对大小写不敏感的
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)
let a = ‘hello hello hello hello’
let reg = /hello/g
console.log(a.replace(reg, ‘*’)) // * * * *
let a1 = ‘hello Hello hello Hello’
let reg1 = /Hello/g
console.log(a1.replace(reg1, ‘*’)) // hello * hello *
let a2 = ‘hello Hello hello Hello’
let reg2 = /Hello/gi
console.log(a2.replace(reg2, ‘*’))
let a3 = ‘hello _Hello hello Hello’
let reg3 = /Hello/gi
console.log(a3.replace(reg3, ‘*’))* _* * *
对于 g 全局的匹配,我对于它的理解就是能找到的都可以,只要符合的行,看上面的四个例子,最主要是看最后一个一个例子不管是不是一体只要符合你的规则就可以
m 多行匹配 let a = ‘hellon hello hello hello’ let reg = /hello/m console.log(a.replace(reg, ‘*’)) // *
hello hello hello
let a1 = ‘hello Hellon hello Hello’ let reg1 = /Hello/m console.log(a1.replace(reg1, ‘*’)) // hello *
hello hello
let a1 = ‘hello hellon hello Hello’ let reg1 = /Hello/m console.log(a1.replace(reg1, ‘*’)) //hello hello
hello *
通过上面的两个例子,我们已经知道 m 修饰符也算是查找全局的修饰符但是它匹配到一个就不会再进行匹配了
咱们在这里再说一下 es6 的修饰 y, 又叫做粘连修饰符,和 g 修饰符类似也是全局匹配