关于\d*和\d+匹配 '话是6930184,地址是'结果不一样

关于\d*和\d+匹配 '话是6930184,地址是'结果不一样

var str = '我家的电话是6930184,地址是北京西城区';

var pattern=/\d*/;

这个匹配结果为空,不是很理解,默认如果是贪婪匹配的话,会尽可能多的匹配,应该和var pattern=/\d+/;一样的吧


正在回答

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

2回答

同学你好,/\d*/匹配结果为空,和*有关。*匹配前面的子表达式零次或多次。*等价于{0,}。  因为*可以匹配0次,匹配的时候是从字符串左侧开始的,开始是汉字不是数字,所以匹配过1次之后,没有匹配到,那就可以不往下进行匹配了。所以是空的。

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

  • 王文辉 提问者 #1
    就是说贪婪匹配优先级没有匹配从左到右的默认匹配规则高,或者说贪婪匹配也是遵循默认匹配规则,从左到右,匹配到一个字符继续匹配下一个,未匹配到则停止 如果开始是数字,那么这里的*和+结果就是一样了?
    2020-03-29 10:41:59
好帮手慕言 2020-03-29 13:58:20

同学你好,是可以这样理解的。如果字符串的开头是数字,那么两种方法的效果是一样的。

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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