Android中手機號、車牌號正則表達式


  • 手機號

手機號的號段說明轉載自:國內手機號碼的正則表達式|蝸牛的積累

 手機名稱有GSM:表示只支持中國聯通或者中國移動2G號段(130、131、132、134、135、136、137、138、139、145、147、150、151、152、155、156、157、158、159、182、185、186、187、188)

手機名稱有CDMA:表示只支持中國電信2G號段(133、153、180、181、189) 

手機名稱有WCDMA/GSM:表示支持中國聯通或者中國移動2G號段,以及中國聯通3G號段(130、131、132、134、135、136、137、138、139、145、147、150、151、152、155、156、157、158、159、182、183、185、186、187、188),不支持 移動3G業務,不支持電信卡。

手機名稱有TD-SCDMA/GSM:表示支持中國聯通或者中國移動2G號段,以及中國移動3G號段(130、131、132、134、135、136、137、138、139、145、147、150、151、152、155、156、157、158、159、 182、183、185、186、187、188),不支持聯通3G業務,不支持電信卡。

手機名稱有CDMA2000/CDMA:表示支持中國電信2G號段,以及中國電信3G號段(133、153、180、181、189),不支持移動聯通卡

手機名稱有CDMA2000/GSM(雙模雙待):表示一張卡支持中國電信2G號段,以及中國電信3G號段(133、153、180、181、189),另一張卡支持中國移動或中國聯通2G號段的語音和短信功能。

第三方運營商的170號碼段

補充:聯通4G 176、電信4G 177、移動4G 178號段

 

根據這些寫出的正則表達式函數如下:

1 public static boolean isMobileNO(String mobiles) { 2 String telRegex = "13\\d{9}|14[57]\\d{8}|15[012356789]\\d{8}|18[01256789]\\d{8}|17[0678]\\d{8}"; 3 if (TextUtils.isEmpty(mobiles)) return false; 4 else return mobiles.matches(telRegex); 5 }

其中:

“13\\d{9}”指前兩位為1和3,后面跟任意9位;

“14[57]\\d{8}”指前兩位為1和4,第三位為5或7,后面跟任意8位;

以此類推。

 

  • 車牌號

車牌號的正則表達式網上一直有,沒怎么變過:

復制代碼
1 public static boolean isCarnumberNO(String carnumber) { 2 /* 3  車牌號格式:漢字 + A-Z + 5位A-Z或0-9 4  (只包括了普通車牌號,教練車和部分部隊車等車牌號不包括在內) 5 */ 6 String carnumRegex = "[\u4e00-\u9fa5]{1}[A-Z]{1}[A-Z_0-9]{5}"; 7 if (TextUtils.isEmpty(carnumber)) return false; 8 else return carnumber.matches(carnumRegex); 9 }
復制代碼

當然這個正則表達式有局限性,比如第一位只限定是漢字,沒限定只有34個省漢字縮寫;車牌號不存在字母I和O,防止和1、0混淆;部分車牌無法分辨等等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM