老师,为什么这样写,匹配出来不是一个,而是,,,分割呢?

老师,为什么这样写,匹配出来不是一个,而是,,,分割呢?

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

<title>正则表达式</title>

</head>

<body>


<script type="text/javascript">

    var str = '110报警120急救119火警114查询';

    /*此处写代码*/

    var pattern=/\d*/g;

    document.write(str.match(pattern));

    

    

</script>

</body>

</html>


正在回答 回答被采纳积分+1

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

2回答
好帮手慕粉 2020-07-09 17:39:38

同学你好,正则会对匹配的内容进行挨个验证的,就看能不能匹配到结果了。这里的*是匹配0个或者多个,当对汉字进行匹配时,不符合条件,匹配到的是空,也就是匹配到了0个,满足正则。而+是匹配一个或者多个,当对汉字进行验证时,不符合正则,匹配为空,那么就匹配不到结果了。

同学再理解下。

好帮手慕粉 2020-07-09 09:43:58

同学你好,因为*号是匹配0个或者多个,所以汉字也会进行匹配,但是汉字不符合条件,所以匹配到的就是空,可以在控制台输出一下:

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

效果:

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

而匹配出来的内容,在页面显示的时候会以逗号分隔,所以会有三个逗号。可以使用+号实现,这样代表匹配一个或者多个,就不会匹配到汉字了:

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

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

  • 提问者 慕用6222994 #1
    老师,我没明白*为什么会匹配汉字呢?+却不会呢?现在不是匹配数字吗?
    2020-07-09 16:25:11
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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