Loading

JavaScript 中的 RegExp 对象

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')
打印 /abc\d/gim

使用拼接字符串给正则添加变量:

let reg = new RegExp( str + '\\d', 'gim')
// 打印 /abc\d/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'
posted @ 2020-03-17 09:32  fsdffsdf  阅读(529)  评论(0编辑  收藏  举报