越努力,越幸运,做个ccode~

0%

正则入门

创建一个正则表达式

可以使用正则表达式字面量,也可以通过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值为分组名