關于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 關注
- 910 瀏覽
添加回答
舉報
0/150
提交
取消