您的位置:首页 > 大数据 > 人工智能

后台数据校验

2015-12-29 17:04 1196 查看
package validate;

import java.text.SimpleDateFormat;

import java.util.HashMap;

import java.util.Map;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import org.apache.commons.lang3.StringUtils;

/**

* @author lkw

* @time 2015年11月30日

* @email lukw@eastcom-sw.com

*/

public class validateExcel {

public static String validateExcelFormat(String value ,Map<String,Object> rules,String type){

StringBuffer message = new StringBuffer();
String validate = isRequired(value,rules);
getMessage(message, validate);
if(StringUtils.isNotBlank(validate))
return message.toString();
if("TEXTFIELD".equals(type)){
validate = validateTextField(value,rules);
getMessage(message, validate);
}else if("TEXTAREA".equals(type)){
validate = validateTextArea(value,rules);
getMessage(message, validate);
}else if("DATETIME".equals(type)){
validate = validateDateTime(value);
getMessage(message, validate);
}else if("INTEGERFIELD".equals(type)){
validate = validateInteger(value);
getMessage(message, validate);
}else if("DOUBLEFIELD".equals(type)){
validate = validateDouble(value);
getMessage(message, validate);
}else if("PHONEFIELD".equals(type)){
validate = validatePhoneNo(value);
getMessage(message, validate);
}else if("EMAILFIELD".equals(type)){
validate = validateEmail(value);
getMessage(message, validate);
}else if("IP".equals(type)){
validate = validateIP(value);
getMessage(message, validate);
}
return message.toString();
}

private static String validateTextArea(String value,Map<String,Object> rules){

return null;
}
private static String validateTextField(String value,Map<String,Object> map){

StringBuffer message = new StringBuffer();
String validate = null;
Object length = map.get("minLength");

if(length != null){
int minLength = Integer.valueOf(String.valueOf(map.get("minLength")));
validate = minLenght(value, minLength);
getMessage(message, validate);
}
length = map.get("maxLength");
if(length != null){
int minLength = Integer.valueOf(String.valueOf(map.get("minLength")));
validate = maxLength(value, minLength);
getMessage(message, validate);
}
return message.toString();
}

private static String validateDateTime(String value) {

// 指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
// 设置lenient为false.否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01
dateFormat.setLenient(false);
boolean flag = true;
try {
dateFormat.parse(value);
} catch (Exception e) {
flag = false;
}
if(!flag)
return "请输入正确的日期";
return null;
}

private static String validateInteger(String value) {

Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
if(!pattern.matcher(value).matches())
return "请输入正确的整数";
return null;


// Pattern pattern = Pattern.compile(“[0-9]*”);

// return pattern.matcher(str).matches();

}

private static String validateDouble(String value) {

boolean flag = true;
try {
Double.parseDouble(value);
} catch (NumberFormatException ex) {
flag = false;
}
if(!flag)
return "请输入正确的数字";
return null;
}

private static String maxLength(String value ,int length){

if(StringUtils.isNotBlank(value)&&value.length()>length)
return "超过最大长度";
return null;
}

private static String minLenght(String value ,int length){

if(StringUtils.isNotBlank(value)&&value.length()<length)
return "最小长度为" + length;
return null;
}
private static String validatePhoneNo(String value) {

String check = "^(13[4,5,6,7,8,9]|15[0,8,9,1,7]|188|187)\\d{8}$";
Pattern regex = Pattern.compile(check);
Matcher matcher = regex.matcher(value);
if(!matcher.matches())
return "请输入正确的手机号码 !!   ";
return null;
}
private static String validateEmail(String value) {

String check = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
Pattern regex = Pattern.compile(check);
Matcher matcher = regex.matcher(value);
if(!matcher.matches())
return "请输入正确的邮箱!!  ";
return null;
}

private static String isRequired(String value,Map<String,Object> rules){

Boolean flag = (Boolean)rules.get("isNull");
if(flag && StringUtils.isBlank(value))
return "为必填项";
else
return null;
}

private static String validateIP(String value){

String ip ="\\b((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\.((?!\\d\\d\\d)\\d+|1\\d\\d|2[0-4]\\d|25[0-5])\\b";
Pattern pattern = Pattern.compile(ip);
Matcher matcher = pattern.matcher(value);
if(!matcher.matches())
return "请输入正确的ip地址";
return null;
}

private static void getMessage(StringBuffer message, String validate) {

if(StringUtils.isNotBlank(validate))
message.append(validate);
}
public static void main(String[] args) {

Map<String,Object> rules = new HashMap<String, Object>();
rules.put("minLength", 5);
rules.put("maxLength", 10);
rules.put("isNull", false);
String type = "IP";
String value ="192.168.1.1333";
String message =  validateExcelFormat(value, rules, type);
System.out.println("message = "+message);
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Execl 数据 IP Email