W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
不幸的是,剛才那個表達式也能匹配 010)12345678 或 (022-87654321 這樣的“不正確”的格式。要解決這個問題,我們需要用到分枝條件。正則表達式里的分枝條件指的是有幾種規(guī)則,如果滿足其中任意一種規(guī)則都應該當成匹配,具體方法是用|把不同的規(guī)則分隔開。聽不明白?沒關系,看例子:
0\d{2}-\d{8}|0\d{3}-\d{7}
這個表達式能匹配兩種以連字號分隔的電話號碼:一種是三位區(qū)號,8 位本地號(如010-12345678),一種是 4 位區(qū)號,7 位本地號(0376-2233445)。
(?0\d{2}\)?[- ]?\d{8}|0\d{2}[- ]?\d{8}
這個表達式匹配3位區(qū)號的電話號碼,其中區(qū)號可以用小括號括起來,也可以不用,區(qū)號與本地號間可以用連字號或空格間隔,也可以沒有間隔。你可以試試用分枝條件把這個表達式擴展成也支持4位區(qū)號的。
\d{5}-\d{4}|\d{5}
這個表達式用于匹配美國的郵政編碼。美國郵編的規(guī)則是 5 位數(shù)字,或者用連字號間隔的9位數(shù)字。之所以要給出這個例子是因為它能說明一個問題:使用分枝條件時,要注意各個條件的順序。如果你把它改成\d{5}|\d{5}-\d{4}
的話,那么就只會匹配 5 位的郵編(以及 9 位郵編的前 5 位)。原因是匹配分枝條件時,將會從左到右地測試每個條件,如果滿足了某個分枝的話,就不會去再管其它的條件了。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: