關(guān)于javascript的正則表達(dá)式var pattem = /8go.gle8/;var str = ‘8google8’;alert(pattem.test(str));這個(gè)輸出true,.等于o(2)var pattem = /8go..*gle8/;var str = ‘8google8’;alert(pattem.test(str));第二個(gè)里面有兩個(gè).為什么也會(huì)輸出true?
2 回答

GCT1015
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊
123 | var pattem = /8go..*gle8/; var str = ‘8google8’; alert(pattem.test(str)); |
在這個(gè)正則里面
第一個(gè).匹配的是 字母 o
第二個(gè).是和*一起的,.表示一個(gè)任意字符 *表示0個(gè)或多個(gè)。這里 .* 一起最終匹配了0個(gè)任意字符,所以最終也是true。如果沒有*,輸出就是false了。

慕妹3242003
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
因?yàn)?*表示點(diǎn)0到無數(shù)次重復(fù),等同于.{0,},也就是說可以不重復(fù)(0次重復(fù)),所以你第二個(gè)正則表達(dá)式,可以等同于第一個(gè)正則表達(dá)式,因?yàn)?*可以為0次重復(fù).
如果你把.*改成.+輸出就是false了,因?yàn)?+表示點(diǎn)1到無數(shù)次重復(fù),等同于.{1,}
下面給你一個(gè).+的例子,你看看吧,結(jié)果為false
12345678910111213 | <script type=text/javascript> var pattem = /8go..+gle8/; var str = '8google8' ; alert(pattem.test(str)); </script> 運(yùn)行結(jié)果 false |
- 2 回答
- 0 關(guān)注
- 919 瀏覽
添加回答
舉報(bào)
0/150
提交
取消