常用正则表达式判断



public class ExcelParseRule {

/**
* Excel单元格通用校验
* @param row 行
* @param cols 列
* @param match 校验规则
* @param str 校验字段
* @param checkempty 是否校验非空
* @param checklength 是否校验长度
* @param length 最大长度
* @return
*/
private static String validate(int row, int cols, String match, String str, boolean checkempty, boolean checklength, int length){

if(match==null) return null;

StringBuffer sb = new StringBuffer("第"+row+"行,第"+cols+"列");

if(checkempty){
if(str==null || str.length()==0){
sb.append("不得为空,");
return sb.toString();
}
}

if(checklength){
if(str.getBytes().length > length){
sb.append("字段长度超出范围,");
return sb.toString();
}
}

if(Pattern.matches(match, str)){
return null;
} else{
if(str==null || str.length()==0){
return null;
}
return sb.append("格式错误,").toString();
}
}

/**
* 普通字符串校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validateCommonString(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, ".*?", str, checkempty, checklength, length);
return result!=null?result+"请输入正确的字符!":null;
}

/**
* Email校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validateEmail(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$", str, checkempty, checklength, length);
return result!=null?result+"请输入正确的Email!":null;
}

/**
* 中文字符校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validateChineseString(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, "[\u4e00-\u9fa5]", str, checkempty, checklength, length);
return result!=null?result+"请输入正确的中文字符!":null;
}

/**
* 整数校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validateInteger(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, "^-?[1-9]\\d*$", str, checkempty, checklength, length);
return result!=null?result+"请输入正确的整数!":null;
}

/**
* 浮点数校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validateFloat(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, "^-?([1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*|0?\\.0+|0)$", str, checkempty, checklength, length);
return result!=null?result+"请输入正确的浮点数!":null;
}

/**
* 日期格式校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validateDate(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, "^((((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))$", str, checkempty, checklength, length);
return result!=null?result+"请输入正确的日期格式!":null;
}

/**
* URL地址校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validateURL(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, "^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$", str, checkempty, checklength, length);
return result!=null?result+"请输入正确的URL!":null;
}

/**
* 邮政编码校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validatePostCode(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, "[1-9]\\d{5}(?!\\d)", str, checkempty, checklength, length);
return result!=null?result+"请输入正确的邮政编码!":null;
}

/**
* 身份证号码校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validateCertiCode(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, "^\\d{14}\\w|\\d{17}\\w$", str, checkempty, checklength, length);
return result!=null?result+"请输入正确的身份证号!":null;
}

/**
* 电话号码校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validateTele(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, "^[+]{0,1}(\\d){1,3}[ ]?([-]?((\\d)|[ ]){1,12})+$", str, checkempty, checklength, length);
return result!=null?result+"请输入正确的电话号码!":null;
}

/**
* 手机号码校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validateMobile(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, "^13\\d{9}$", str, checkempty, checklength, length);
return result!=null?result+"请输入正确的手机号码!":null;
}

/**
* IP地址校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validateIP(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, "^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$", str, checkempty, checklength, length);
return result!=null?result+"请输入正确的IP地址!":null;
}

/**
* 英文字母校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validateLetter(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, "^[A-Za-z]+$", str, checkempty, checklength, length);
return result!=null?result+"请输入正确的英文字母!":null;
}

/**
* 大写英文字母校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validateCapitalLetter(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, "^[A-Z]+$", str, checkempty, checklength, length);
return result!=null?result+"请输入正确的大写英文字母!":null;
}

/**
* 小写英文字母校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validateSmallLetter(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, "^[a-z]+$", str, checkempty, checklength, length);
return result!=null?result+"请输入正确的小写英文字母!":null;
}

/**
* 英文字母或数字校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validateLetterAndNumeric(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, "^[A-Za-z0-9]+$", str, checkempty, checklength, length);
return result!=null?result+"请输入正确的英文字母或数字!":null;
}

/**
* 半角字符校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validateDbcCase(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, "^[\\x00-\\xff]*$", str, checkempty, checklength, length);
return result!=null?result+"请输入正确的半角字符!":null;
}

/**
* 特殊字符校验
* @param row
* @param cols
* @param str
* @param checkempty
* @param checklength
* @param length
* @return
*/
public static String validateSpecial(int row, int cols, String str, boolean checkempty, boolean checklength, int length){
String result = validate(row, cols, "^[A-Za-z0-9\u4e00-\u9fa5_.,!?()[ ]/-]+$", str, checkempty, checklength, length);
return result!=null?result+"不能输入特殊字符!":null;
}

public static void main(String[] args) {
System.out.println(ExcelParseRule.validateCommonString(1,1,"2007-2-29", true, true, 5));
System.out.println(ExcelParseRule.validateEmail(1, 1, "fz8224gmail.com", true, true, 20));
System.out.println(ExcelParseRule.validateChineseString(1, 1, "999kkk", true, true, 20));
System.out.println(ExcelParseRule.validateInteger(1, 1, "999kkk", true, true, 20));
System.out.println(ExcelParseRule.validateFloat(1, 1, "999kkk", true, true, 20));
System.out.println(ExcelParseRule.validateDate(1, 1, "999kkk", true, true, 20));
System.out.println(ExcelParseRule.validateURL(1, 1, "999kkk", true, true, 20));
System.out.println(ExcelParseRule.validatePostCode(1, 1, "999kkk", true, true, 20));
System.out.println(ExcelParseRule.validateCertiCode(1, 1, "999kkk", true, true, 20));
System.out.println(ExcelParseRule.validateTele(1, 1, "999kkk", true, true, 20));
System.out.println(ExcelParseRule.validateMobile(1, 1, "999kkk", true, true, 20));
System.out.println(ExcelParseRule.validateIP(1, 1, "999kkk", true, true, 20));
System.out.println(ExcelParseRule.validateLetter(1, 1, "999kkk", true, true, 20));
System.out.println(ExcelParseRule.validateCapitalLetter(1, 1, "999kkk", true, true, 20));
System.out.println(ExcelParseRule.validateSmallLetter(1, 1, "999kkk", true, true, 20));
System.out.println(ExcelParseRule.validateLetterAndNumeric(1, 1, "999kkk范", true, true, 20));
System.out.println(ExcelParseRule.validateDbcCase(1, 1, "999kkk", true, true, 5));
System.out.println(ExcelParseRule.validateSpecial(1, 1, "@$@#%%$^%&^*", true, true, 20));
}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值