为什么用exec返回的都是null

为什么用exec返回的都是null

<!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 的方式来解决这个问题:

http://img1.sycdn.imooc.com//climg/5d07361b0001c8ae18540590.jpg

希望可以帮到你!

卡布琦诺 2019-06-17 14:25:17

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

可以修改如下:

http://img1.sycdn.imooc.com//climg/5d07322100015fbe07320333.jpg

希望可以帮到你!

  • 提问者 weixin_慕仰958966 #1
    我知道这个例子是需要进行全文查找和忽略大小写,但如果是需要这两个修饰的地方呢,用exec要怎么做?
    2019-06-17 14:28:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师