繁星coding
2019-03-14 18:13:05
/^(18[0-9]{9})|(15[0-9]{9})$/ 這條正則為什么能匹配 18444444444444444444,我對這條正則的理解是 以 18 或 15 開頭后接9位 0-9 的數(shù)字。注:我知道手機(jī)號碼的正則有其他的寫法,只是想弄懂為什么這條可以匹配的原因。
5 回答

慕的地8271018
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
/^(18[0-9]{9})|(15[0-9]{9})$/
這個(gè)表達(dá)式相當(dāng)于:
/(^18[0-9]{9})|(15[0-9]{9}$)/
是因?yàn)?^ 和 $ 的優(yōu)先級比 | 高,所以 ^ 先與 18[0-9]{9} 匹配了

米脂
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
/^(18[0-9]{9})|(15[0-9]{9})$/
首先你要明白你寫的這條正則代表什么意思:
^(18[0-9]{9})或者(15[0-9]{9})$就匹配
翻譯過來就是:
(18和9個(gè)十進(jìn)制數(shù)開頭)或者(15和9個(gè)十進(jìn)制結(jié)尾)就匹配
然后你給的數(shù)據(jù)是這樣的:
18444444444444444444
既然是或語句,這符合18和9個(gè)十進(jìn)制數(shù)開頭所以自然就匹配啦
可以改成這樣/^(18[0-9]{9})$|^(15[0-9]{9})$/就符合你要的手機(jī)匹配
添加回答
舉報(bào)
0/150
提交
取消