Java正則表示式——驗證手機號碼符合性
阿新 • • 發佈:2019-02-08
regex1驗證條件很方便,可以大範圍覆蓋,
但是還是細分一下使用regex2驗證條件比較好一些。
/** * 驗證手機號碼的合法性 * @author jy */ package mobile; import java.util.regex.Matcher; import java.util.regex.Pattern; public class mobileTest { public static boolean isMobile(String str) { Pattern p = null; Matcher m = null; boolean isMatch = false; //制定驗證條件 String regex1 = "^[1][3,4,5,7,8][0-9]{9}$"; String regex2 = "^((13[0-9])|(14[579])|(15([0-3,5-9]))|(16[6])|(17[0135678])|(18[0-9]|19[89]))\\d{8}$"; p = Pattern.compile(regex2); m = p.matcher(str); isMatch = m.matches(); return isMatch; } public static void main(String[] args) { String phone = "19968791843"; if(isMobile(phone)){ System.out.println(phone+"是符合的手機號碼"); }else { System.out.println(phone+"不符合,請重新輸入!"); } } }
詳解:
這是正則表示式Pattern.compile("***");這個是規範
Pattern類用於建立一個正則表示式,生成一個Pattern物件並且編譯一個正則表示式,也可以說建立一個匹配模式,
它的構造方法是私有的,不可以直接建立,但可以通過Pattern.complie(String regex)簡單工廠方法建立一個正則表示式,
輪到Matcher類登場了,Pattern.matcher(CharSequence input)返回一個Matcher物件.。
Matcher類的構造方法也是私有的,不能隨意建立,只能通過Pattern.matcher(CharSequence input)方法 得到該類的例項。
String.matches() 這個方法主要是返回是否匹配指定的字串,如果匹配則為true,否則為false。
參考來源: