最近項目中新增的功能,須要對手機號、姓名、身份證號等一些信息進行驗證,最好的方法是經過正則表達式來驗證,網上查了一些資料,寫了這幾個工具方法。正則表達式
一、驗證手機號工具
規則:第一位只能是1,第二位爲3-8中的數字,3-11位爲任意的數字spa
/** * 手機號號段校驗, 第1位:1; 第2位:{三、四、五、六、七、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; }
二、驗證姓名這裏驗證姓名,用戶能夠在輸入框內輸入任何東西,可是在點擊驗證的按鈕時,會調這個方法。code
驗證規則是:姓名由漢字或漢字加「•」、"·"組成,並且,「點」只能有一個,「點」的位置不能在首位也不能在末尾,只有在漢字之間纔會驗證經過。blog
/** * 驗證輸入的名字是否爲「中文」或者是否包含「·」 */ 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; } } }
三、驗證身份證號class
驗證身份證號方法
規則是:由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返回static