最近項目中新增的功能,需要對手機號、姓名、身份證號等一些信息進行驗證,最好的方法是通過正則表達式來驗證,網上查了一些資料,寫了這幾個工具方法。
1、驗證手機號
規則:第一位只能是1,第二位為3-8中的數字,3-11位為任意的數字
/** * 手機號號段校驗, 第1位:1; 第2位:{3、4、5、6、7、8}任意數字; 第3—11位:0—9任意數字 * @param value * @return */ public static boolean isTelPhoneNumber(String value) { if (value != null && value.length() == 11) { Pattern pattern = Pattern.compile("^1[3|4|5|6|7|8][0-9]\\d{8}$"); Matcher matcher = pattern.matcher(value); return matcher.matches(); } return false; }
2、驗證姓名這里驗證姓名,用戶可以在輸入框內輸入任何東西,但是在點擊驗證的按鈕時,會調這個方法。
驗證規則是:姓名由漢字或漢字加“•”、"·"組成,而且,“點”只能有一個,“點”的位置不能在首位也不能在末尾,只有在漢字之間才會驗證通過。
/** * 驗證輸入的名字是否為“中文”或者是否包含“·” */ public static boolean isLegalName(String name){ if (name.contains("·") || name.contains("•")){ if (name.matches("^[\\u4e00-\\u9fa5]+[·•][\\u4e00-\\u9fa5]+$")){ return true; }else { return false; } }else { if (name.matches("^[\\u4e00-\\u9fa5]+$")){ return true; }else { return false; } } }
3、驗證身份證號
驗證身份證號
規則是:由15位數字或18位數字(17位數字加“x”)組成,15位純數字沒什么好說的,18位的話,可以是18位純數字,或者17位數字加“x”
/** * 驗證輸入的身份證號是否合法 */ public static boolean isLegalId(String id){ if (id.toUpperCase().matches("(^\\d{15}$)|(^\\d{17}([0-9]|X)$)")){ return true; }else { return false; } }
以上正則表達式驗證結果,通過true和false返回