This commit is contained in:
Looly 2022-04-06 22:50:57 +08:00
parent c60f6a6547
commit 552357cc4e
4 changed files with 46 additions and 30 deletions

View File

@ -9,6 +9,7 @@
### 🐣新特性 ### 🐣新特性
* 【core 】 CopyOptions支持以Lambda方式设置忽略属性列表pr#590@Gitee * 【core 】 CopyOptions支持以Lambda方式设置忽略属性列表pr#590@Gitee
* 【core 】 增加中文姓名正则及其校验pr#592@Gitee
### 🐞Bug修复 ### 🐞Bug修复
* 【core 】 修复UserAgentUtil识别Linux出错issue#I50YGY@Gitee * 【core 】 修复UserAgentUtil识别Linux出错issue#I50YGY@Gitee

View File

@ -164,8 +164,8 @@ public class PatternPool {
*/ */
public static final Pattern CAR_DRIVING_LICENCE = Pattern.compile(RegexPool.CAR_DRIVING_LICENCE); public static final Pattern CAR_DRIVING_LICENCE = Pattern.compile(RegexPool.CAR_DRIVING_LICENCE);
/** /**
* 国人姓名 * 姓名
* 总结中国人姓名2-60位只能是中文和新疆人的点. * 总结中国人姓名2-60位只能是中文和 ·
*/ */
public static final Pattern CHINESE_NAME = Pattern.compile(RegexPool.CHINESE_NAME); public static final Pattern CHINESE_NAME = Pattern.compile(RegexPool.CHINESE_NAME);

View File

@ -177,15 +177,17 @@ public interface RegexPool {
*/ */
String CAR_DRIVING_LICENCE = "^[0-9]{12}$"; String CAR_DRIVING_LICENCE = "^[0-9]{12}$";
/** /**
* 国人姓名 * 姓名
* @see PatternPool#CHINESES [\u4E00-\u9FFF]+ 中文字 * 维吾尔族姓名里面的点是 · 输入法中文状态下键盘左上角数字1前面的那个符号<br>
* @see PatternPool#GENERAL_WITH_CHINESE "^[\u4E00-\u9FFF\w·]{2,60}$" 中文字英文字母数字和下划线 * 错误字符{@code ..}<br>
* 新疆人名里面的点是 · 输入法中文状态下键盘左上角数字1前面的那个符号错误字符.. * 正确维吾尔族姓名
* 正确新疆人 * <pre>
* 霍加阿卜杜拉·麦提喀斯木 * 霍加阿卜杜拉·麦提喀斯木
* 玛合萨提别克·哈斯木别克 * 玛合萨提别克·哈斯木别克
* 阿布都热依木江·艾斯卡尔 * 阿布都热依木江·艾斯卡尔
* 阿卜杜尼亚孜·毛力尼亚孜 * 阿卜杜尼亚孜·毛力尼亚孜
* </pre>
* <pre>
* ---------- * ----------
* 错误示例 reason: 有空格 * 错误示例 reason: 有空格
* 错误示例连逍遥0 reason: 数字 * 错误示例连逍遥0 reason: 数字
@ -196,7 +198,8 @@ public interface RegexPool {
* 错误示例翟冬: reason: 有特殊符号 * 错误示例翟冬: reason: 有特殊符号
* 错误示例 reason: 少于2位 * 错误示例 reason: 少于2位
* ---------- * ----------
* 总结中国人姓名2-60位只能是中文和新疆人的点· * </pre>
* 总结中文姓名2-60位只能是中文和维吾尔族的点·
*/ */
String CHINESE_NAME = "^[\u4E00-\u9FFF·]{2,60}$"; String CHINESE_NAME = "^[\u4E00-\u9FFF·]{2,60}$";
} }

View File

@ -20,7 +20,7 @@ import java.util.regex.Pattern;
* <li>isXXX通过返回boolean值判断是否满足给定格式</li> * <li>isXXX通过返回boolean值判断是否满足给定格式</li>
* <li>validateXXX通过抛出异常{@link ValidateException}检查是否满足给定格式</li> * <li>validateXXX通过抛出异常{@link ValidateException}检查是否满足给定格式</li>
* </ul> * </ul>
* * <p>
* 主要验证字段非空是否为满足指定格式等如是否为Email电话等 * 主要验证字段非空是否为满足指定格式等如是否为Email电话等
* *
* @author Looly * @author Looly
@ -105,11 +105,6 @@ public class Validator {
* 驾驶证 别名驾驶证档案编号行驶证编号12位数字字符串仅限中国驾驶证档案编号 * 驾驶证 别名驾驶证档案编号行驶证编号12位数字字符串仅限中国驾驶证档案编号
*/ */
public final static Pattern CAR_DRIVING_LICENCE = PatternPool.CAR_DRIVING_LICENCE; public final static Pattern CAR_DRIVING_LICENCE = PatternPool.CAR_DRIVING_LICENCE;
/**
* 中国人姓名
* 总结中国人姓名2-60位只能是中文和新疆人的点.
*/
public static final Pattern CHINESE_NAME = PatternPool.CHINESE_NAME;
/** /**
* 给定值是否为{@code true} * 给定值是否为{@code true}
@ -948,7 +943,7 @@ public class Validator {
* @return 是否为URL * @return 是否为URL
*/ */
public static boolean isUrl(CharSequence value) { public static boolean isUrl(CharSequence value) {
if(StrUtil.isBlank(value)){ if (StrUtil.isBlank(value)) {
return false; return false;
} }
try { try {
@ -1148,10 +1143,9 @@ public class Validator {
/** /**
* 验证是否为车架号别名行驶证编号 车辆识别代号 车辆识别码 * 验证是否为车架号别名行驶证编号 车辆识别代号 车辆识别码
* *
* @author dazer and ourslook
*
* @param value 17位车架号形如LSJA24U62JG269225LDC613P23A1305189 * @param value 17位车架号形如LSJA24U62JG269225LDC613P23A1305189
* @return 是否为车架号 * @return 是否为车架号
* @author dazer and ourslook
* @since 5.6.3 * @since 5.6.3
*/ */
public static boolean isCarVin(CharSequence value) { public static boolean isCarVin(CharSequence value) {
@ -1161,13 +1155,12 @@ public class Validator {
/** /**
* 验证是否为车架号别名行驶证编号 车辆识别代号 车辆识别码 * 验证是否为车架号别名行驶证编号 车辆识别代号 车辆识别码
* *
* @author dazer and ourslook
*
* @param <T> 字符串类型 * @param <T> 字符串类型
* @param value * @param value
* @param errorMsg 验证错误的信息 * @param errorMsg 验证错误的信息
* @return 验证后的值 * @return 验证后的值
* @throws ValidateException 验证异常 * @throws ValidateException 验证异常
* @author dazer and ourslook
* @since 5.6.3 * @since 5.6.3
*/ */
public static <T extends CharSequence> T validateCarVin(T value, String errorMsg) throws ValidateException { public static <T extends CharSequence> T validateCarVin(T value, String errorMsg) throws ValidateException {
@ -1181,10 +1174,9 @@ public class Validator {
* 验证是否为驾驶证 别名驾驶证档案编号行驶证编号 * 验证是否为驾驶证 别名驾驶证档案编号行驶证编号
* 仅限中国驾驶证档案编号 * 仅限中国驾驶证档案编号
* *
* @author dazer and ourslook
*
* @param value 12位数字字符串,eg:430101758218 * @param value 12位数字字符串,eg:430101758218
* @return 是否为档案编号 * @return 是否为档案编号
* @author dazer and ourslook
* @since 5.6.3 * @since 5.6.3
*/ */
public static boolean isCarDrivingLicence(CharSequence value) { public static boolean isCarDrivingLicence(CharSequence value) {
@ -1193,29 +1185,49 @@ public class Validator {
/** /**
* 是否是中国人姓名 * 是否是中文姓名
* 维吾尔族姓名里面的点是 · 输入法中文状态下键盘左上角数字1前面的那个符号<br>
* 错误字符{@code ..}<br>
* 正确维吾尔族姓名
* <pre>
* 霍加阿卜杜拉·麦提喀斯木
* 玛合萨提别克·哈斯木别克
* 阿布都热依木江·艾斯卡尔
* 阿卜杜尼亚孜·毛力尼亚孜
* </pre>
* <pre>
* ----------
* 错误示例 reason: 有空格
* 错误示例连逍遥0 reason: 数字
* 错误示例依帕古丽-艾则孜 reason: 特殊符号
* 错误示例牙力空.买提萨力 reason: 新疆人的点不对
* 错误示例王建鹏2002-3-2 reason: 有数字特殊符号
* 错误示例雷金默(雷皓添 reason: 有括号
* 错误示例翟冬: reason: 有特殊符号
* 错误示例 reason: 少于2位
* ----------
* </pre>
* 总结中文姓名2-60位只能是中文和 ·
* *
* @param value 中文姓名
* @return 是否是正确的中文姓名
* @author dazer * @author dazer
* * @since 5.8.0.M3
* @param value 中国人姓名
* @return 是否是正确的中国人姓名
* @see 5.8.0.M3
*/ */
public static boolean isChineseName(CharSequence value) { public static boolean isChineseName(CharSequence value) {
return isMatchRegex(CHINESE_NAME, value); return isMatchRegex(PatternPool.CHINESE_NAME, value);
} }
/** /**
* 验证是否为驾驶证 别名驾驶证档案编号行驶证编号 * 验证是否为驾驶证 别名驾驶证档案编号行驶证编号
*
* @author dazer and ourslook
* *
* @param <T> 字符串类型 * @param <T> 字符串类型
* @param value * @param value
* @param errorMsg 验证错误的信息 * @param errorMsg 验证错误的信息
* @return 验证后的值 * @return 验证后的值
* @throws ValidateException 验证异常 * @throws ValidateException 验证异常
* @author dazer and ourslook
* @since 5.6.3 * @since 5.6.3
*/ */
public static <T extends CharSequence> T validateCarDrivingLicence(T value, String errorMsg) throws ValidateException { public static <T extends CharSequence> T validateCarDrivingLicence(T value, String errorMsg) throws ValidateException {