正则表达式(Regular Expression)是一组由字母和符号组成的特殊文本,它可以用来从文本中找出满足你想要的格式的句子。
![](https://i-blog.csdnimg.cn/blog_migrate/a6b7ed3aa8794d443aacee583d4957ab.png)
regexp
创建正则表达式的两种方法:字面量、RegExp
构造函数
字面量,以斜杠表示开始和结束:
const regex = /abc/
RegExp
构造函数:
const regex = new RegExp('abc')
RegExp
构造函数还可以接受第二个参数,表示修饰符:
const regex = new RegExp('abc', 'i')
实例方法
test()
test()
方法返回一个布尔值,表示当前模式是否能匹配参数字符串。
/lit/.test('I am a lit') // true
exec()
exec()
方法在一个指定字符串中执行一个搜索匹配。返回一个结果数组或 null
。
const str = '_x_x'
/x/.exec(str) // ['x', index: 1, input: '_x_x', groups: undefined]
/y/.exec(str) // null
实例属性
-
ignoreCase
只读属性。返回一个布尔值,表示是否设置了i
修饰符。 -
multiline
只读属性。返回一个布尔值,表示是否设置了m
修饰符。 -
global
只读属性。返回一个布尔值,表示是否设置了g
修饰符。
const reg = /abc/igm
reg.ignoreCase // true
reg.global // true
reg.multiline // true
Tips:这些修饰符的作用下文有做解释。
lastIndex
可读可写。返回一个数值,表示下一次开始搜索的位置。
/(hi)?/g.lastIndex // 0
source
只读属性。返回正则表达式的字符串形式(不包括反斜杠)。
/abc/igm.source // "abc"
unicode
只读属性。属性表明正则表达式带有 u
修饰符。
/\u{61}/u.unicode // true
sticky
ES6 新增的只读属性。表示是否设置了y
修饰符。
/foo/y.sticky // true
flags
ES6 新增。该属性返回一个字符串,由当前正则表达式对象的修饰符组成,以字典序排序(从左到右,即 "gimuy"
)。
/foo/ig.flags // "gi"
/bar/myu.flags .flags // "muy"
字符串的正则方法
match()
match()
方法检索返回一个字符串匹配正则表达式的结果数组。
'The fat cat sat on the mat.'.match(/a/g) // ["a", "a", "a", "a"]
split()
split()
按照给定规则进行字符串分割,返回一个数组,包含分割后的各个成员。
语法
str.split(separator, [limit])
该方法接受两个参数,第一个参数是正则表达式,表示分隔规则,第二个参数是返回数组的最大成员数。