ValidateUtil 验证字符串是否是邮箱,身份证,url,中文汉字等


import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.lang3.StringUtils;

/**
 * 公共验证类
 * 
 * @author mafei
 *
 */
public class ValidateUtil {
    /**
     * 验证是是否为空
     * 
     * @param str
     * @return 不为空返回 true
     */
    public static boolean isNotBlank(String str) {
        return StringUtils.isNotBlank(str);
    }

    /**
     * 验证是否是正整数
     * 
     * @param str
     * @return
     */
    public static boolean isNum(String str) {
        return StringUtils.isNumericSpace(str);
    }

    /**
     * 验证长度是否合法
     * 
     * @param str
     * @param min
     * @param max
     * @return
     */
    public static boolean isLength(String str, Integer min, Integer max) {
        if (!isNotBlank(str)) {
            return false;
        } else if (min != null && str.length() < min) {
            return false;
        } else if (max != null && str.length() > max) {
            return false;
        }
        return true;
    }

    /**
     * 用户名验证
     * 
     * @param str
     * @param min
     * @param max
     * @return
     */
    public static boolean isUserName(String str, Integer min, Integer max) {
        return Pattern.matches("^[a-zA-Z]\\w{" + min + "," + max + "}$", str);
    }

    /**
     * 密码验证
     * 
     * @param str
     * @param min
     * @param max
     * @return
     */
    public static boolean isPassWord(String str, Integer min, Integer max) {
        return Pattern.matches("[a-zA-Z0-9]{" + min + "," + max + "}$", str);
    }

    /**
     * 手机号验证
     * 
     * @param str
     * @return 验证通过返回true
     */
    public static boolean isTel(String str) {
        Pattern p = Pattern.compile("^[1][3,4,5,6,7,8,9][0-9]{9}$"); // 验证手机号
        Matcher m = p.matcher(str);
        return m.matches();
    }

    /**
     * 邮箱验证
     * 
     * @param str
     * @return
     */
    public static boolean isEmail(String str) {
        return Pattern.matches("^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$",
                str);
    }

    /**
     * 中文汉字验证
     * 
     * @param str
     * @return
     */
    public static boolean isChinese(String str) {
        return Pattern.matches("^[\u4e00-\u9fa5],{0,}$", str);
    }

    /**
     * 电话号码验证
     * 
     * @param str
     * @return 验证通过返回true
     */
    public static boolean isPhone(String str) {
        Pattern p1 = null, p2 = null;
        Matcher m = null;
        boolean b = false;
        p1 = Pattern.compile("^[0][1-9]{2,3}-[0-9]{5,10}$"); // 验证带区号的
        p2 = Pattern.compile("^[1-9]{1}[0-9]{5,8}$"); // 验证没有区号的
        if (str.length() > 9) {
            m = p1.matcher(str);
            b = m.matches();
        } else {
            m = p2.matcher(str);
            b = m.matches();
        }
        return b;
    }

    /**
     * 身份证号验证
     * 
     * @param str
     * @return
     */
    public static boolean isIdCard(String str) {
        Pattern p = null;
        Matcher m = null;
        boolean b = false;
        p = Pattern.compile("^([0-9]{6})(18|19|20)?([0-9]{2})([01][0-9])([0123][0-9])([0-9]{3})([0-9]|X|x)?$");
        m = p.matcher(str);
        b = m.matches();
        return b;
    }

    /**
     * 验证是否为ip地址
     * 
     * @param ip
     * @return
     */
    public static boolean isIp(String ip) {
        String ipStr = "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."
                + "(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
                + "(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."
                + "(00?\\d|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$";
        Pattern pattern = Pattern.compile(ipStr);
        Matcher matcher = pattern.matcher(ip);
        return matcher.matches();
    }

    /**
     * URL验证
     * 
     * @param str
     * @return
     */
    public static boolean isUrl(String str) {
        return Pattern.matches("http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?", str);
    }

    public static void main(String[] args) {
        String str = "17716253335";
        System.out.println(ValidateUtil.isTel(str));
    }

}

你可能感兴趣的:(ValidateUtil 验证字符串是否是邮箱,身份证,url,中文汉字等)