| import java.lang.reflect.Array; |
| import java.time.LocalDateTime; |
| import java.time.format.DateTimeFormatter; |
| import java.util.Collection; |
| import java.util.Map; |
| import java.util.regex.Matcher; |
| import java.util.regex.Pattern; |
| |
| |
| |
| |
| public final class ValidUtil { |
| |
| private ValidUtil() { |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| @SuppressWarnings("rawtypes") |
| public static boolean isEmpty(Object data) { |
| if (null == data) |
| return true; |
| if (data instanceof String) { |
| if(String.valueOf(data).trim().isEmpty()) { |
| return true; |
| }else if("undefined".equals(String.valueOf(data))){ |
| return true; |
| }else if("null".equals(String.valueOf(data))){ |
| return true; |
| } |
| } else if (data instanceof Map) { |
| return ((Map) data).isEmpty(); |
| } else if (data instanceof Collection) { |
| Collection coll = (Collection) data; |
| return coll.isEmpty(); |
| } else if (data.getClass().isArray()) { |
| return Array.getLength(data) == 0; |
| } else if (data instanceof Long) { |
| Long l = (Long) data; |
| return l == 0; |
| } |
| return false; |
| } |
| |
| |
| |
| |
| |
| |
| |
| public static boolean isNotEmpty(Object data) { |
| return !isEmpty(data); |
| } |
| |
| |
| |
| |
| |
| |
| public static boolean isPhone(String phone) { |
| String regex = "^((13[0-9])|(14[0-9])|(15([0-9]))|(16[0-9])|(17[0-9])|(18[0-9])|(19[0-9]))\\d{8}$"; |
| if (isEmpty(phone) || phone.length() != 11) { |
| return false; |
| } |
| return isValid(phone, regex); |
| } |
| |
| |
| |
| |
| |
| |
| |
| public static boolean isEmail(String text){ |
| String regex = "^[\\w-]+(.[\\w-]+)*@[\\w-]+(.[\\w-]+)+$"; |
| return isValid(text, regex); |
| } |
| |
| |
| |
| |
| |
| |
| |
| public static boolean isInt(String text) { |
| return isNotEmpty(text) && isValid(text,"[0-9]*"); |
| } |
| |
| |
| |
| |
| |
| |
| |
| public static boolean isNum(String text){ |
| return isNotEmpty(text) && isValid(text, "^[\\+\\-]?[\\d]+(\\.[\\d]+)?$"); |
| } |
| |
| |
| |
| |
| |
| |
| |
| public static boolean isDate(String text) { |
| if(isEmpty(text)) |
| return false; |
| String pattern = "yyyy-MM-dd HH:mm:ss"; |
| if(!isDate(text,pattern)){ |
| if(!isDateRexp(text)){ |
| return false; |
| } |
| } |
| return true; |
| } |
| |
| |
| |
| |
| |
| |
| |
| public static boolean isDateRexp(String date){ |
| String regex = "^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))"; |
| return isValid(date, regex); |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| public static boolean isDate(String text, String pattern){ |
| try { |
| DateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern); |
| LocalDateTime.parse(text, dtf); |
| return true; |
| }catch (Exception e){ |
| return false; |
| } |
| } |
| |
| |
| |
| |
| |
| |
| |
| public static boolean isStrong(String password){ |
| String regex = "(?=^.{8,}$)((?=.*\\d)|(?=.*\\W+))(?![.\\n])(?=.*[A-Z])(?=.*[a-z]).*$"; |
| return isValid(password, regex); |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| public static boolean isValid(String text, String regex){ |
| Pattern pat = Pattern.compile(regex); |
| Matcher mat = pat.matcher(text); |
| return mat.matches(); |
| } |
| |
| } |
| if(ValidUtil.isNotEmpty(user.getName())){ |
| |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2021-07-22 ubuntu入门