*不是0次多次吗,为啥打印不出来

*不是0次多次吗,为啥打印不出来

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
 <title>正则表达式-重复</title>
</head>
<body>
<script type="text/javascript">
    var str = '我家的电话是6930184,地址是北京西城区';
 /*此处添加代码*/
 var par=/6930184/;
 var par1=/\d*/;
 document.write(par.exec(str))
 document.write(par1.exec(str))
</script>
</body>
</html>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,“\d”是数字;str的第一位置是“我”,不是数字,可以理解成此处“0个数字(没有数字)”,所以能匹配上;可以单写一个正则测试一下:

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

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

同学试着理解一下。


好帮手慕久久 2020-05-24 16:29:19

同学你好,“*”是0次或多次,只是由于正则表达式“par1”的匹配结果是“”(空),所以打印到页面上没内容,我们可以将匹配到的结果在控制台打印看一下:

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

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

由于字符串str的第一个字符“我”满足“/\d*/”,所以匹配结果是“”。

需要将量词“*”换成“+”,才能匹配到str中间的数字,如下:

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

如果我的回答帮到了你,欢迎采纳,祝学习愉快!

  • 提问者 慕少3568243 #1
    老师这个\d不是匹配数字的吗为什么第一个字符"我"会满足这个条件呢?
    2020-05-24 17:22:34
  • ZZZZZzn 回复 提问者 慕少3568243 #2
    是的,\d不是匹配[0-9]吗?为什么呢
    2020-05-29 16:02:32
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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