关于javascript的正则表达式var pattem = /8go.gle8/;var str = ‘8google8’;alert(pattem.test(str));这个输出true,.等于o(2)var pattem = /8go..*gle8/;var str = ‘8google8’;alert(pattem.test(str));第二个里面有两个.为什么也会输出true?
2 回答
GCT1015
TA贡献1827条经验 获得超4个赞
123 | var pattem = /8go..*gle8/; var str = ‘8google8’; alert(pattem.test(str)); |
在这个正则里面
第一个.匹配的是 字母 o
第二个.是和*一起的,.表示一个任意字符 *表示0个或多个。这里 .* 一起最终匹配了0个任意字符,所以最终也是true。如果没有*,输出就是false了。
慕妹3242003
TA贡献1824条经验 获得超6个赞
因为.*表示点0到无数次重复,等同于.{0,},也就是说可以不重复(0次重复),所以你第二个正则表达式,可以等同于第一个正则表达式,因为.*可以为0次重复.
如果你把.*改成.+输出就是false了,因为.+表示点1到无数次重复,等同于.{1,}
下面给你一个.+的例子,你看看吧,结果为false
12345678910111213 | <script type=text/javascript> var pattem = /8go..+gle8/; var str = '8google8' ; alert(pattem.test(str)); </script> 运行结果 false |
- 2 回答
- 0 关注
- 861 浏览
添加回答
举报
0/150
提交
取消