JavaScript 中的 RegExp 对象
RegExp 对象的创建
JS中的 RegExp 是正则表达式对象。
语法:
new RegExp(正则表达式的内容,匹配模式/修饰符)
修饰符:
i | 执行对大小写不敏感的匹配。 |
---|---|
g | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止) |
m | 执行多行匹配 |
使用构造函数创建正则表达式
let reg = new RegExp('hello', 'gim')
// 打印 /hello/gim
- 其中第一个参数 'hello' 是表达式的内容,第二个参数是修饰符,定义正则表达式的匹配模式
- 根据打印可以看到,使用RegExp 构造函数new 出来的表达式会自动加上表达式前后的 / /, 因此在第一参数中只需要填写正则的主体内容即可。 第一个参数中可以填入任意表达式内容或者变量等拼接字符串。
如果正则表达式不包含变量可以不用构造函数,直接创建
let reg = /hello/g
给正则添加变量:
let str = 'abc'
let reg = new RegExp(str, 'g')
// 打印 /abc/gim
使用模版字符串给正则添加变量:
let reg = new RegExp( `${str}`, 'gim')
// 打印 /abc/gim
如果字符串中有 字符 需要多加一个
转义
let reg = new RegExp( `${str}\d`, 'gim')
打印 /abcd/gim
使用拼接字符串给正则添加变量:
let reg = new RegExp( str + '\d', 'gim')
// 打印 /abcd/gim
EegExp对象的方法
exec()
找到正则匹配的内容,并返回其位置。如果没有则返回null
let reg = new RegExp('c')
let res = reg.exec('abcd')
console.log('打印', res)
// 打印 [ 'c', index: 2, input: 'abcd', groups: undefined ]
test()
检测是否包含正则匹配的内容,返回 true 或 false
let res = /hello/g.test('hello word')
console.log('打印', res)
// 打印 true
toString
将正则表达式转为字符串
let res = /hello/g.toString()
console.log('打印', res)
// 打印 '/hello/g'