老师,*不是可以表示匹配任意数字嘛,为啥不出结果呢?

来源:3-15 编程练习

慕姐9358429

2020-07-22 22:30:33

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

<title>正则表达式-重复</title>

</head>

<body>


<script type="text/javascript">

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

/*此处添加代码*/

var pattern1=/\d{1,}/;//第一种方法

var pattern2=/\d*///第二种方法

// console.log(pattern.exec(str));

document.write(pattern1.exec(str)+'</br>');

document.write(pattern2.exec(str));

</script>

</body>


</html>


写回答

1回答

好帮手慕夭夭

2020-07-23

同学你好,问题描述的不对,\d才表示匹配数字,*表示匹配前面的子表达式任意次数,相当于{0,},即匹配0次也可以。当匹配如下字符串时,因为前面不是数字,所以匹配不到,匹配了0次,符合匹配次数,就不会再往下匹配了。

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

这里应该使用+,加号表示匹配前面的子表达式一次或多次(大于等于1次),即至少要匹配一次。如下修改:

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

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

0

0 学习 · 14456 问题

查看课程