259 字
1 分钟
正则入门
2019-12-08

创建一个正则表达式#

可以使用正则表达式字面量,也可以通过RegExp构造函数 var re = /abc/gi var re = new regexp(“abc”,‘gi’)

其中abcre.source gire.flags

lastIndex 改变#

注意: 在全局匹配模式下,lastIndex的值在每次调用exec()或test()后都会增加,而在非全局模式下则始终保持不变。

var regex = /foo/g;
// regex.lastIndex is at 0
regex.test('foo'); // true
// regex.lastIndex is now at 3
regex.test('foo'); // false

String.prototype.match()#

返回值

如果使用g标志,则将返回与完整正则表达式匹配的所有结果,但不会返回捕获组。 如果未使用g标志,则仅返回第一个完整匹配及其相关的捕获组(Array)。

'hhabcdefxx'.match(/abc(?<xxx>def)/g) // ['abcdef']
let res = 'hhabcdefxx'.match(/abc(?<xxx>def)/) //
// ["abcdef", "def", index: 2, input: "hhabcdefxx", groups: {xxx: def}]

res表示的内容#

res[0] 匹配到的字符串 res[1,n] 分组匹配到的字符串 res[‘index’] 匹配到的字符串位于原始字符串的索引 res[‘input’] 原始字符串 res[‘groups’] 各个分组匹配到的字符串 key值为分组名

正则入门
https://blog.cxyxiaoyu.top/posts/正则入门/
作者
小宇
发布于
2019-12-08
许可协议
CC BY-NC-SA 4.0