JavaScript RegExp的lastIndex属性
JavaScript的RegExp
对象中的lastIndex
属性是一个整数,表示下一次匹配的起始位置。当使用全局标志g
时,lastIndex
属性会在每次匹配后自动更新。如果没有全局标志,则lastIndex
属性始终为0。
语法
lastIndex
属性的语法如下:
RegExp.lastIndex
示例1:使用lastIndex属性查找下一个匹配项
const re = /hello/g;
const str = 'hello world, hello javascript!';
console.log(re.lastIndex); // 输出 0
console.log(re.exec(str)); // 输出 ["hello"]
console.log(re.lastIndex); // 输出 5
console.log(re.exec(str)); // 输出 ["hello"]
console.log(re.lastIndex); // 输出 21
在上面的示例中,我们首先定义了一个正则表达式/hello/g
,用于匹配字符串中的所有hello
。然后,我们定义了一个字符串'hello world, hello javascript!'
,用于搜索。我们使用exec()
方法搜索字符串,并使用console.log()
方法输出结果。我们可以看到,每次匹配后,lastIndex
属性会自动更新为下一次匹配的起始位置。
示例2:使用lastIndex属性进行多次匹配
const re = /hello/g;
const str = 'hello world, hello javascript!';
re.lastIndex = 6;
console.log(re.exec(str)); // 输出 ["hello"]
re.lastIndex = 22;
console.log(re.exec(str)); // 输出 null
在上面的示例中,首先定义了一个正则表达式/hello/g
,用于匹配字符串中的所有hello
。然后,我们定义了一个字符串'hello world, hello javascript!'
,用于搜索。我们手动设置lastIndex
属性为6和22,然使用exec()
方法搜索字符串,并使用console.log()
方法输出结果。我们可以看到,当lastIndex
属性设置为6时,匹配结果为["hello"]
,而当lastIndex
属性设置为22时,匹配结果为null
。
总结
JavaScript RegExp对象中的lastIndex
属性是一个整数,表示下一次匹配的起始位置。当使用全局标志g
时,lastIndex
属性会在每次匹配后自动更新。我们可以使用该属性查找下一个匹配项,或者手动设置该属性进行多次匹配。在实际开发中,我们可以根据需要使用该属性,并进行相应的操作。