为什么用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回答

樱桃小胖子

2019-06-17

使用exec() 方法返回null的主要影响因素是 lastIndex ,所以我们可以通过将 lastIndex 手动置 0 的方式来解决这个问题:

http://img.mukewang.com/climg/5d07361b0001c8ae18540590.jpg

希望可以帮到你!

0

樱桃小胖子

2019-06-17

在全局模式下,当 exec() 找到了与表达式相匹配的文本时,在匹配后,它将把正则表达式对象的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置。这就是说,您可以通过反复调用 exec() 方法来遍历字符串中的所有匹配文本。当 exec() 再也找不到匹配的文本时,它将返回 null,并把 lastIndex 属性重置为 0。 

可以修改如下:

http://img.mukewang.com/climg/5d07322100015fbe07320333.jpg

希望可以帮到你!

0
heixin_慕仰958966
h 我知道这个例子是需要进行全文查找和忽略大小写,但如果是需要这两个修饰的地方呢,用exec要怎么做?
h019-06-17
共1条回复

0 学习 · 14456 问题

查看课程