130 lines
3.3 KiB
Java
130 lines
3.3 KiB
Java
/*
|
||
* Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
|
||
*
|
||
* https://www.mall4j.com/
|
||
*
|
||
* 未经允许,不可做商业用途!
|
||
*
|
||
* 版权所有,侵权必究!
|
||
*/
|
||
package com.mcwl.common.utils;
|
||
|
||
import cn.hutool.core.util.StrUtil;
|
||
|
||
import java.util.regex.Pattern;
|
||
|
||
/**
|
||
* 正则表达式工具
|
||
*/
|
||
public class PrincipalUtil {
|
||
|
||
/**
|
||
* 以1开头,后面跟10位数
|
||
*/
|
||
public static final String MOBILE_REGEXP = "1[0-9]{10}";
|
||
/**
|
||
* 电话号码
|
||
*/
|
||
public static final String TEL_REGEXP = "([0-9]{3,4}-)?[0-9]{7,8}";
|
||
/**
|
||
* 微信号
|
||
*/
|
||
public static final String WX_NUMBER_REGEXP = "[a-zA-Z][a-zA-Z\\d_-]{5,19}$";
|
||
/**
|
||
* QQ号
|
||
*/
|
||
public static final String QQ_NUMBER_REGEXP = "[1-9][0-9]{4,14}";
|
||
/**
|
||
* 1. 用户名不能为纯数字 2. 由数字字母下划线 4-16位组成
|
||
*/
|
||
public static final String USER_NAME_REGEXP = "(?!\\d+$)([a-zA-Z0-9_]{4,16})";
|
||
|
||
/**
|
||
* 字段名,数字字母下划线
|
||
*/
|
||
public static final String FIELD_REGEXP = "([a-zA-Z0-9_]+)";
|
||
|
||
/**
|
||
* 只能输入数字字母
|
||
*/
|
||
public static final String WITHOUT_CHINESE = "^[A-Za-z0-9]+$";
|
||
|
||
/**
|
||
* 由简单的字母数字拼接而成的字符串 不含有下划线,大写字母
|
||
*/
|
||
public static final String SIMPLE_CHAR_REGEXP = "([a-z0-9]+)";
|
||
|
||
/**
|
||
* 邮箱正则
|
||
*/
|
||
public static final String MAIL_REGEXP = "([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})";
|
||
|
||
public static boolean isMobile(String value) {
|
||
if(StrUtil.isBlank(value)) {
|
||
return false;
|
||
}
|
||
return Pattern.matches(MOBILE_REGEXP, value);
|
||
}
|
||
|
||
public static boolean isTel(String value) {
|
||
if(StrUtil.isBlank(value)) {
|
||
return false;
|
||
}
|
||
return Pattern.matches(TEL_REGEXP, value);
|
||
}
|
||
|
||
public static boolean isWxNumber(String value) {
|
||
if(StrUtil.isBlank(value)) {
|
||
return false;
|
||
}
|
||
return Pattern.matches(WX_NUMBER_REGEXP, value);
|
||
}
|
||
|
||
public static boolean isQqNumber(String value) {
|
||
if(StrUtil.isBlank(value)) {
|
||
return false;
|
||
}
|
||
return Pattern.matches(QQ_NUMBER_REGEXP, value);
|
||
}
|
||
|
||
public static boolean isUserName(String value) {
|
||
if(StrUtil.isBlank(value)) {
|
||
return false;
|
||
}
|
||
return Pattern.matches(USER_NAME_REGEXP, value);
|
||
}
|
||
|
||
public static boolean isMail(String value) {
|
||
if(StrUtil.isBlank(value)) {
|
||
return false;
|
||
}
|
||
return Pattern.matches(MAIL_REGEXP, value);
|
||
}
|
||
|
||
/**
|
||
* 是否符合字段规则
|
||
* @param value 输入值
|
||
* @return 匹配结果
|
||
*/
|
||
public static boolean isField(String value) {
|
||
return isMatching(FIELD_REGEXP, value);
|
||
}
|
||
|
||
public static boolean isMatching(String regexp, String value) {
|
||
if (StrUtil.isBlank(value)) {
|
||
return false;
|
||
}
|
||
return Pattern.matches(regexp, value);
|
||
}
|
||
|
||
/**
|
||
* 是否是由简单的字母数字拼接而成的字符串
|
||
* @param value 输入值
|
||
* @return 匹配结果
|
||
*/
|
||
public static boolean isSimpleChar(String value) {
|
||
return isMatching(SIMPLE_CHAR_REGEXP, value);
|
||
}
|
||
|
||
}
|