Javascript RegExp lastIndex 属性

  • Post category:JavaScript

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属性会在每次匹配后自动更新。我们可以使用该属性查找下一个匹配项,或者手动设置该属性进行多次匹配。在实际开发中,我们可以根据需要使用该属性,并进行相应的操作。