为什么用exec返回的都是null
来源:2-7 编程练习
weixin_慕仰958966
2019-06-17 10:42:46
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JavaScript函数作业</title>
<style>
.add{
cursor: pointer;
}
</style>
</head>
<body>
<script type="text/javascript">
var str = 'regular expression = regexp';
var pattern = /lar exp/ig;
var rege = new RegExp('regexp','ig');
console.log(pattern.test(str) + '/');
console.log(pattern.exec(str) + '/');
console.log(rege.test(str) + '/');
console.log(rege.exec(str));
</script>
</body>
</html>
2回答
使用exec() 方法返回null的主要影响因素是 lastIndex ,所以我们可以通过将 lastIndex 手动置 0 的方式来解决这个问题:
希望可以帮到你!
樱桃小胖子
2019-06-17
在全局模式下,当 exec() 找到了与表达式相匹配的文本时,在匹配后,它将把正则表达式对象的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置。这就是说,您可以通过反复调用 exec() 方法来遍历字符串中的所有匹配文本。当 exec() 再也找不到匹配的文本时,它将返回 null,并把 lastIndex 属性重置为 0。
可以修改如下:
希望可以帮到你!
相似问题