Java处理正则验证手机号-详解
參考博客:https://www.cnblogs.com/wangzn/p/7212587.html
https://www.cnblogs.com/go4mi/p/6426215.html
?
package phone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
?* 運營商號段如下:
?* 中國聯(lián)通號碼:130、131、132、145(無線上網(wǎng)卡)、155、156、185(iPhone5上市后開放)、186、176(4G號段)、
?* ?? ??? ??? ?? 175(2015年9月10日正式啟用,暫只對北京、上海和廣東投放辦理)
?* 中國移動號碼:134、135、136、137、138、139、147(無線上網(wǎng)卡)、150、151、152、157、158、159、182、183、187、188、178
?* 中國電信號碼:133、153、180、181、189、177、173、149 虛擬運營商:170、1718、1719?
?* 手機號前3位的數(shù)字包括:
?* 1 :1
?* 2 :3,4,5,7,8
?* 3 :0,1,2,3,4,5,6,7,8,9?
?* 總結(jié): 目前java手機號碼正則表達式有:
?* a :"^1[3|4|5|7|8][0-9]\\d{4,8}$"??? 一般驗證情況下這個就可以了
?* b :"^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[013678])|(18[0,5-9]))\\d{8}$"
?* Pattern和Matcher詳解(字符串匹配和字節(jié)碼)http://blog.csdn.net/u010700335/article/details/44616451
?*/
? ? ?/**
?? ? * 詳解:這是正則表達式Pattern.compile("***");這個是規(guī)范
??? Pattern類用于創(chuàng)建一個正則表達式,生成一個Pattern對象并且編譯一個正則表達式,也可以說創(chuàng)建一個匹配模式,
?? ?它的構(gòu)造方法是私有的,不可以直接創(chuàng)建,?? ?但可以通過Pattern.complie(String regex)簡單工廠方法創(chuàng)建一個正則表達式,
?? ?輪到Matcher類登場了,Pattern.matcher(CharSequence input)返回一個Matcher對象.?
?? ?
?? ?Matcher類的構(gòu)造方法也是私有的,不能隨意創(chuàng)建,只能通過Pattern.matcher(CharSequence input)方法得到該類的實例
?? ?String.matches() 這個方法主要是返回是否匹配指定的字符串,如果匹配則為true,否則為false;
}
?
我在項目中的使用:
main類:
1 import java.util.regex.Matcher; 2 import java.util.regex.Pattern; 3 4 public class Main { 5 6 public static void main(String[] args) { 7 String str = "13195650000"; 8 if (str.matches(Contant.REGEX_MOBILE)) { 9 System.out.println("是手機號"); 10 } else { 11 System.out.println("不是手機號"); 12 } 13 } 14 }Contant類:
1 public class Contant { 2 3 public static final String REGEX_MOBILE = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[013678])|(18[0,5-9]))\\d{8}$"; 4 5 }?
轉(zhuǎn)載于:https://www.cnblogs.com/haoyul/p/9701085.html
總結(jié)
以上是生活随笔為你收集整理的Java处理正则验证手机号-详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: laravel 同数据表字段比较查询和状
- 下一篇: windows2016重新配置sid