259 字
1 分钟
正则入门
创建一个正则表达式
可以使用正则表达式字面量,也可以通过RegExp构造函数 var re = /abc/gi var re = new regexp(“abc”,‘gi’)
其中abc是re.source gi是re.flags
lastIndex 改变
注意: 在全局匹配模式下,lastIndex的值在每次调用exec()或test()后都会增加,而在非全局模式下则始终保持不变。
var regex = /foo/g;
// regex.lastIndex is at 0regex.test('foo'); // true
// regex.lastIndex is now at 3regex.test('foo'); // falseString.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值为分组名