import java.util.regex.Pattern; /** * 表单校验工具类 * * @author sunger * */ public class FormValidation { /** * 手机号校验 注:1.支持最新170手机号码 2.支持+86校验 * * @param phoneNum * 手机号码 * @return 验证通过返回true */ public static boolean isMobile(String phoneNum) { if (phoneNum == null) return false; // 如果手机中有+86则会自动替换掉 return validation("^[1][3,4,5,7,8][0-9]{9}$", phoneNum.replace("+86", "")); } /** * 用户名校验,默认用户名长度至少3个字符,最大长度为15<br> * 可修改正则表达式以实现不同需求 * * @param username * 用户名 * @return */ public static boolean isUserName(String username) { /*** * 正则表达式为:^[a-z0-9_-]{3,15}$ 各部分作用如下: [a-z0-9_-] ----------- * 匹配列表中的字符,a-z,0–9,下划线,连字符 {3,15}-----------------长度至少3个字符,最大长度为15 * 如果有不同需求的可以参考以上修改正则表达式 */ return validation("^[a-z0-9_-]{3,15}$", username); } /** * 密码校验 * 要求6-16位数字和英文字母组合 * @param pwd * @return */ public static boolean isPassword(String pwd) { /** * ^ 匹配一行的开头位置(?![0-9]+$) 预测该位置后面不全是数字 * (?![a-zA-Z]+$) 预测该位置后面不全是字母 * [0-9A-Za-z] {6,16} 由6-16位数字或这字母组成 */ return validation("^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,16}$", pwd); } /** * 邮箱校验 * * @param mail * 邮箱字符串 * @return 如果是邮箱则返回true,如果不是则返回false */ public static boolean isEmail(String mail) { return validation( "^([a-z0-9A-Z]+[-|//.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?//.)+[a-zA-Z]{2,}$", mail); } /** * 正则校验 * * @param pattern正则表达式 * @param str * 需要校验的字符串 * @return 验证通过返回true */ public static boolean validation(String pattern, String str) { if (str == null) return false; return Pattern.compile(pattern).matcher(str).matches(); } }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10636.html