com.gitee.cliveyuan.tools.ValidateTools Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of java-tools Show documentation
Show all versions of java-tools Show documentation
Some commonly used methods in java
package com.gitee.cliveyuan.tools;
import java.util.Objects;
import java.util.regex.Pattern;
/**
* 验证工具
*
* @author clive
* Created on 2018/07/24
* @since 1.0
*/
public class ValidateTools {
private ValidateTools() {
}
/**
* 正则匹配
*
* @param text
* @param regex
*/
public static boolean matches(String text, String regex) {
if (StringTools.isBlank(text) || StringTools.isBlank(regex))
return false;
return Pattern.compile(regex).matcher(text).matches();
}
/**
* 匹配年龄
*
* @param age
*/
public static boolean isAge(int age) {
return range(1, 200, age);
}
/**
* 匹配姓名
*
* @param name
*/
public static boolean isName(String name) {
if (StringTools.isBlank(name)) return false;
int length = name.length();
if (isChineseChar(name))
return range(1, 15, length);
else
return range(1, 30, length);
}
/**
* 判断中文字符(包括汉字和符号)
*
* @param text
*/
public static boolean isChineseChar(String text) {
return matches(text, "^[\u0391-\uFFE5]+$");
}
/**
* 匹配汉字
*
* @param text
*/
public static boolean isChinese(String text) {
return matches(text, "^[\u4e00-\u9fa5]+$");
}
/**
* 判断英文字母(a-zA-Z)
*
* @param text
*/
public static boolean isLetter(String text) {
return matches(text, "^[A-Za-z]+$");
}
/**
* 匹配正整数
*
* @param str
*/
public static boolean isDigits(String str) {
return matches(str, "^[0-9]*$");
}
/**
* 匹配正浮点数
*
* @param str
*/
public static boolean isFloat(String str) {
return matches(str, "^[-\\+]?\\d+(\\.\\d+)?$");
}
/**
* 匹配数值类型,包括整数和浮点数
*
* @param str
*/
public static boolean isNumeric(String str) {
return isFloat(str) || isDigits(str);
}
/**
* 匹配URL地址
*
* @param str
*/
public static boolean isUrl(String str) {
return matches(str, "^http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?$");
}
/**
* 最小
*
* @param min
* @param value
*/
public static boolean min(int min, int value) {
return value >= min;
}
/**
* 最大
*
* @param max
* @param value
*/
public static boolean max(int max, int value) {
return value <= max;
}
/**
* 大小范围
*
* @param min
* @param max
* @param value
*/
public static boolean range(int min, int max, int value) {
return min(min, value) && max(max, value);
}
/**
* 是否大于等于最小长度
*
* @param min
* @param str
*/
public static boolean minLength(int min, String str) {
if (Objects.isNull(str)) return false;
return min(min, str.length());
}
/**
* 是否小于等于最大长度
*
* @param max
* @param str
*/
public static boolean maxLength(int max, String str) {
if (Objects.isNull(str)) return false;
return max(max, str.length());
}
/**
* 长度范围
*
* @param min 最小
* @param max 最大
* @param str 字符串
*/
public static boolean rangeLength(int min, int max, String str) {
return minLength(min, str) && maxLength(max, str);
}
/**
* 手机号校验
* 移动号段: 134,135,136,137,138,139,147,150,151,152,157,158,159,170,178,182,183,184,187,188
* 联通号段: 130,131,132,145,155,156,170,171,175,176,185,186
* 电信号段: 133,149,153,170,173,177,180,181,189
*
* @param text
*/
public static boolean isMobile(String text) {
if (StringTools.isBlank(text) || text.length() != 11)
return false;
return matches(text, "^((13[0-9])|(14[5,7,9])|(15[^4])|(18[0-9])|(17[0,1,3,5,6,7,8]))\\d{8}$");
}
//邮箱
/**
* 匹配Email地址
*
* @param str
*/
public static boolean isEmail(String str) {
return matches(str, "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");
}
/**
* 验证银行卡
* 15-19位数字
*
* @param text
*/
public static boolean isBankCardNo(String text) {
if (!isDigits(text)) return false;
return range(15, 19, text.length());
}
/**
* 身份证号码验证
*
* @param text
*/
public static boolean isIdCardNo(String text) {
return IDCardTools.isIDCard(text);
}
}