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));
}
}
分享到:
相关推荐
### JS常用正则表达式知识点解析 #### 一、电子邮件地址验证 **功能说明:** 验证输入的字符串是否符合标准电子邮件地址格式。 **正则表达式:** ```javascript /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/ ``` **...
本压缩包"常用正则表达式.rar"提供了一些常见的正则表达式示例,主要包括校验数字、字符以及满足特殊需求的表达式。 1. **校验数字的表达式** - 验证整数:`^\d+$`,这将匹配任何由一个或多个数字组成的字符串。 ...
下面将详细介绍正则表达式的基本规则以及常用的正则表达式。 1. **基本元素**: - **普通字符**:如"a"、"b"等,它们匹配自身。 - **元字符**:具有特殊含义的字符,如".", "*", "+", "?", "^", "$", "\\", "|"等...
负向预查是正则表达式中用来判断字符串是否不匹配某个模式的符号。例如,(?!pattern) 负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。 8. 或运算 或运算是正则表达式中用来匹配多个模式的符号。...
### Java正则表达式判断字符串是否包含中文 在日常的软件开发过程中,我们经常会遇到需要对输入的字符串进行校验的情况。例如,在处理用户输入、文本分析或数据清洗时,可能需要判断一个字符串中是否包含中文字符。...
根据给定的文件信息,我们可以总结出以下关于Java正则表达式的重要知识点: ### 1. 正则表达式简介 正则表达式是一种强大的文本处理工具,它能够帮助我们匹配、查找、替换等操作符合某种规则的字符串。在Java中,...
本文将详细介绍几种常用的日期正则表达式及其原理。 #### 二、简单日期格式验证 ##### 1. YYYY/MM/DD 格式的日期验证 最基础的日期格式是`YYYY/MM/DD`,这种格式下日期的正则表达式为: ``` ^\d{4}(\-|\/|\.)\d{...
在RegexTool.exe这样的工具中,用户可以输入待验证的正则表达式和测试文本,通过“测试”功能快速判断正则表达式的有效性。 总之,正则表达式是IT行业中的重要工具,用于高效处理文本。通过使用正则表达式生成工具...
例如,使用“正则表达式匹配”命令可以对字符串进行模式匹配,判断是否符合预设的规则。这个命令接受两个参数:一个是待检测的字符串,另一个是正则表达式模式。 对于匹配中文,我们需要了解中文字符的编码。在...
常用正则表达式 可以解决很多条件判断的用处 使用方法: //引入命名空间 using System.Text.RegularExpressions; //声明Regex对象 Regex 对象名 = new Regex (表达式);//表达式为赋予对象的规则 该表达式用字符串...
这篇博客“java常用正则表达式(转)”可能详细介绍了Java如何使用正则表达式进行各种操作。虽然没有具体的描述内容,但我们可以从标题和标签中推测,这篇博客可能涵盖了以下几个方面: 1. **正则表达式基础**: -...
《常用正则表达式验证方法》这个压缩包文件包含了常见正则表达式的应用实例,旨在帮助用户快速理解和掌握这些常用的验证方法。文件名中的"验证方法"通常指的是通过正则表达式来检验输入是否符合特定格式或规则。 1....
在使用过程中,用户可以输入自己的正则表达式,然后添加一些测试字符串,应用会根据这些字符串判断正则表达式的匹配情况,从而帮助用户快速调试和优化他们的正则表达式。 正则表达式的基础概念包括: 1. **字符集*...
特别是在处理文本操作时,字符串和正则表达式是两个至关重要的概念。本文将深入探讨C#中的字符串操作和正则表达式使用,帮助你更好地理解和运用这些工具。 一、C#字符串 1. 字符串基础:在C#中,字符串是不可变...
- **功能**: 类似于 `LIKE` 函数,用于判断字符串是否符合指定的正则表达式模式。 - **语法**: ```sql REGEXP_LIKE(expr, pattern [, match_parameter]) ``` - **示例**: - 查询以 "1" 开头且以 "60" 结尾的长度...
#### 2.3 月光博客的《常用正则表达式》 虽然这并不是一篇完整的教程,但它提供了一系列实用的正则表达式实例,如用于判断电子邮件地址、QQ号码、身份证号码格式等。对于需要在实际项目中运用正则表达式的开发者来说...
本文将深入解析《java常用正则表达式》文档中提及的几个关键正则表达式,帮助读者理解和掌握这些常用的模式,从而在实际开发中更加灵活地运用正则表达式的功能。 ### 手机号码验证 正则表达式:`^(13|15|18)\d{9}$...
以下是一些常用的正则表达式及其用途: 1. **电话号码**: - `(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?`:这个正则表达式可以匹配多种格式的电话号码,包括区号和分隔符。 2. **电子邮件地址**: - `^\w+(...