public class ValidatorUtils { /** * 正则表达式:验证用户名(不包含中文和特殊字符)如果用户名使用手机号码或邮箱 则结合手机号验证和邮箱验证 */ public static final String REGEX_USERNAME = "^[a-zA-Z]\\w{5,16}$"; /** * 正则表达式:验证密码(不包含特殊字符) */ public static final String REGEX_PASSWORD = "^[a-zA-Z0-9]{6,16}$"; /** * 正则表达式:验证手机号 */ public static final String REGEX_MOBILE = "^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$"; /** * 正则表达式:验证电话 */ public static final String REGEX_TELEPHONE = "((^(13|15|18)[0-9]{9}$)|(^0[1,2]{1}d{1}-?d{8}$)|" + "(^0[3-9] {1}d{2}-?d{7,8}$)|" + "(^0[1,2]{1}d{1}-?d{8}-(d{1,4})$)|" + "(^0[3-9]{1}d{2}-? d{7,8}-(d{1,4})$))"; /** * * 正则表达式:验证邮箱 */ public static final String REGEX_EMAIL = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; /** * 正则表达式:验证汉字(1-9个汉字) {1,9} 自定义区间 */ public static final String REGEX_CHINESE = "^[\u4e00-\u9fa5]{1,9}$"; /** * 正则表达式:验证身份证 */ public static final String REGEX_ID_CARD = "(^\\d{15}$)|(^\\d{17}([0-9]|X)$)"; /** * 正则表达式:验证URL */ public static final String REGEX_URL = "http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?"; /** * 正则表达式:验证IP地址 */ public static final String REGEX_IP_ADDR = "(2[5][0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})"; /** * 校验用户名 * * @param username * @return 校验通过返回true,否则返回false */ public static boolean isUserName(String username) { return Pattern.matches(REGEX_USERNAME, username); } /** * 校验密码 * * @param password * @return 校验通过返回true,否则返回false */ public static boolean isPassword(String password) { return Pattern.matches(REGEX_PASSWORD, password); } /** * 校验手机号 * * @param mobile * @return 校验通过返回true,否则返回false */ public static boolean isMobile(String mobile) { if (TextUtils.isEmpty(mobile)) { return false; } return Pattern.matches(REGEX_MOBILE, mobile); } /** * 校验验证号码 手机号 固话均可 * * @param phoneNumber * @return 校验通过返回true,否则返回false */ public static boolean isPhoneNumberValid(String phoneNumber) { return Pattern.matches(REGEX_TELEPHONE, phoneNumber); } /** * 校验邮箱 * * @param email * @return 校验通过返回true,否则返回false */ public static boolean isEmail(String email) { return Pattern.matches(REGEX_EMAIL, email); } /** * 校验汉字 * * @param chinese * @return 校验通过返回true,否则返回false */ public static boolean isChinese(String chinese) { return Pattern.matches(REGEX_CHINESE, chinese); } /** * 校验身份证 * * @param idCard * @return 校验通过返回true,否则返回false */ public static boolean isIDCard(String idCard) { return Pattern.matches(REGEX_ID_CARD, idCard); } /** * 校验URL * * @param url * @return 校验通过返回true,否则返回false */ public static boolean isUrl(String url) { return Pattern.matches(REGEX_URL, url); } /** * 校验IP地址 * * @param ipAddress * @return */ public static boolean isIPAddress(String ipAddress) { return Pattern.matches(REGEX_IP_ADDR, ipAddress); } /** * 验证输入的身份证号是否合法 */ public static boolean isLegalId(String id) { if (id.toUpperCase().matches("(^\\d{15}$)|(^\\d{17}([0-9]|X)$)")) { return true; } else { return false; } } /** * 判断字符串是否是数字 */ public static boolean isNumber(String value) { return isInteger(value) || isDouble(value) || isLong(value); } /** * 判断字符串是否是整数 */ public static boolean isInteger(String value) { try { Integer.parseInt(value); return true; } catch (NumberFormatException e) { return false; } } /** * 判断字符串是否是浮点数 */ public static boolean isDouble(String value) { try { Double.parseDouble(value); if (value.contains(".")) return true; return false; } catch (NumberFormatException e) { return false; } } /** * 判断字符串是否是long */ public static boolean isLong(String value) { try { Long.parseLong(value); return true; } catch (NumberFormatException e) { return false; } } /** * 判断字符串是否是金额 */ //金额验证 public static boolean isMoney(String str) { if (TextUtils.isEmpty(str)) { return false; } Pattern pattern = Pattern.compile("^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0,2})?$"); // 判断小数点后2位的数字的正则表达式 Matcher match = pattern.matcher(str); if (match.matches() == false) { return false; } else { return true; } } /** * 将手机号中间4到7位用星号代替 * * @param userName * @return */ public static String getHiddenPhone(String userName) { if (!isMobile(userName)) { return userName; } else { if (!TextUtils.isEmpty(userName) && userName.length() > 6) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < userName.length(); i++) { char c = userName.charAt(i); if (i >= 3 && i <= 6) { sb.append('*'); } else { sb.append(c); } } return sb.toString(); } else { return userName; } } } }
基本正则表达式(涵盖全部常用)
最新推荐文章于 2022-08-25 14:28:44 发布