后台数据校验

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 [email protected]
*/
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);
}

}

猜你喜欢

转载自blog.csdn.net/lkw411526/article/details/50427877