package com.huaiye.ecs.common.utils
;
import java.util.regex.Matcher
;
import java.util.regex.Pattern
;
/**
* Author:KUN
* Time: 2016/9/21 16:26
* Email:zhangkun@haiye.com
*/
public class RegExpValidatorUtils {
/**
* 验证邮箱
*
* @param str str 待验证的字符串
* @return 如果是符合的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isEmail(String str) {
String regex =
"^([\\w-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
return match(regex
, str)
;
}
/**
* 验证IP地址
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isIP(String str) {
String num =
"(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)";
String regex =
"^" + num +
"\\." + num +
"\\." + num +
"\\." + num +
"$";
return match(regex
, str)
;
}
/**
* 验证Port地址
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isPort(String str) {
//端口号验证 1 ~ 65535
String regex =
"^([1-9]|[1-9]\\d{1,3}|[1-6][0-5][0-5][0-3][0-5])$";
return match(regex
, str)
;
}
/**
* 验证网址Url
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isUrl(String str) {
String regex =
"http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?";
return match(regex
, str)
;
}
/**
* 验证电话号码
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isTelephone(String str) {
String regex =
"^(\\d{3,4}-)?\\d{6,8}$";
return match(regex
, str)
;
}
/**
* 验证输入密码条件(字符与数据同时出现)
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isPassword(String str) {
String regex =
"[A-Za-z]+[0-9]";
return match(regex
, str)
;
}
/**
* 验证输入密码长度 (6-18位)
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isPasswLength(String str) {
String regex =
"^\\d{6,18}$";
return match(regex
, str)
;
}
/**
* 验证输入邮政编号
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isPostalcode(String str) {
String regex =
"^\\d{6}$";
return match(regex
, str)
;
}
/**
* 验证输入手机号码
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isHandset(String str) {
String regex =
"^[1]+[3,5]+\\d{9}$";
return match(regex
, str)
;
}
/**
* 验证输入身份证号
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isIDcard(String str) {
String regex =
"(^\\d{18}$)|(^\\d{15}$)";
return match(regex
, str)
;
}
/**
* 验证输入两位小数
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isDecimal(String str) {
String regex =
"^[0-9]+(.[0-9]{2})?$";
return match(regex
, str)
;
}
/**
* 验证输入一年的12个月
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isMonth(String str) {
String regex =
"^(0?[[1-9]|1[0-2])$";
return match(regex
, str)
;
}
/**
* 验证输入一个月的31天
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isDay(String str) {
String regex =
"^((0?[1-9])|((1|2)[0-9])|30|31)$";
return match(regex
, str)
;
}
/**
* 验证日期时间
*
* @param str 待验证的字符串
* @return 如果是符合网址格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isDate(String str) {
// 严格验证时间格式的(匹配[2002-01-31], [1997-04-30],
// [2004-01-01])不匹配([2002-01-32], [2003-02-29], [04-01-01])
// String regex =
// "^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((01,3-9])|(1[0-2]))-(29|30)))))$";
// 没加时间验证的YYYY-MM-DD
// String regex =
// "^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$";
// 加了时间验证的YYYY-MM-DD 00:00:00
String regex =
"^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\\d):[0-5]?\\d:[0-5]?\\d$";
return match(regex
, str)
;
}
/**
* 验证数字输入
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isNumber(String str) {
String regex =
"^[0-9]*$";
return match(regex
, str)
;
}
/**
* 验证非零的正整数
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isIntNumber(String str) {
String regex =
"^\\+?[1-9][0-9]*$";
return match(regex
, str)
;
}
/**
* 验证大写字母
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isUpChar(String str) {
String regex =
"^[A-Z]+$";
return match(regex
, str)
;
}
/**
* 验证小写字母
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isLowChar(String str) {
String regex =
"^[a-z]+$";
return match(regex
, str)
;
}
/**
* 验证验证输入字母
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isLetter(String str) {
String regex =
"^[A-Za-z]+$";
return match(regex
, str)
;
}
/**
* 验证验证输入汉字
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isChinese(String str) {
String regex =
"^[\u4e00-\u9fa5],{0,}$";
return match(regex
, str)
;
}
/**
* 验证验证输入字符串
*
* @param str 待验证的字符串
* @return 如果是符合格式的字符串, 返回 <b>true </b>,否则为 <b>false </b>
*/
public static boolean isLength(String str) {
String regex =
"^.{8,}$";
return match(regex
, str)
;
}
/**
* @param regex 正则表达式字符串
* @param str 要匹配的字符串
* @return 如果str 符合 regex的正则表达式格式,返回true, 否则返回 false;
*/
private static boolean match(String regex
, String str) {
Pattern pattern = Pattern.
compile(regex)
;
Matcher matcher = pattern.matcher(str)
;
return matcher.matches()
;
}
}
转载请注明原文地址: https://ju.6miu.com/read-50073.html