java 校驗手機號格式


主要用到這兩個包:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

 Pattern類用於創建一個正則表達式,生成一個Pattern對象並且編譯一個正則表達式,也可以說創建一個匹配模式,

它的構造方法是私有的,不可以直接創建,    但可以通過Pattern.complie(String regex)簡單工廠方法創建一個正則表達式,

輪到Matcher類登場了,Pattern.matcher(CharSequence input)返回一個Matcher對象. 
    
Matcher類的構造方法也是私有的,不能隨意創建,只能通過Pattern.matcher(CharSequence input)方法得到該類的實例
String.matches() 這個方法主要是返回是否匹配指定的字符串,如果匹配則為true,否則為false;

 

運營商號段信息:

中國聯通號碼:130、131、132、145(無線上網卡)、155、156、185(iPhone5上市后開放)、186、176(4G號段)、

175(2015年9月10日正式啟用,暫只對北京、上海和廣東投放辦理)

中國移動號碼:134、135、136、137、138、139、147(無線上網卡)、150、151、152、157、158、159、182、183、187、188、178

中國電信號碼:133、153、180、181、189、177、173、149 虛擬運營商:170、1718、1719 

手機號前3位的數字包括:

第一位 :1

第二位:2 :3,4,5,7,8

第三位: 0,1,2,3,4,5,6,7,8,9 

總結:

目前java手機號碼正則表達式有:

一: "^1[3|4|5|7|8][0-9]\\d{4,8}$"    一般驗證情況下這個就可以了

二: "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[013678])|(18[0,5-9]))\\d{8}$"

 

 1 public class Test {
 2 
 3     public static void main(String[] args) {
 4         String phone = "13123456789";
 5         String regex = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[013678])|(18[0,5-9]))\\d{8}$";
 6         if(phone.length() != 11){
 7             System.out.println("手機號應為11位數");
 8         }else{
 9             Pattern p = Pattern.compile(regex);
10             Matcher m = p.matcher(phone);
11             boolean isMatch = m.matches();
12             if(isMatch){
13                 System.out.println("您的手機號格式正確");
14             } else {
15                 System.out.println("您的手機號格式不正確");
16             }
17         }
18     }

 


免責聲明!

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



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