From df06f797dbc1dea300a338739a361e59ca342c29 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 10 十二月 2025 17:20:27 +0800
Subject: [PATCH] bug修改
---
ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeKeyGridUser.java | 4 ++--
ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/IDCardValidatorWithEmpty.java | 45 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 47 insertions(+), 2 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/IDCardValidatorWithEmpty.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/IDCardValidatorWithEmpty.java
new file mode 100644
index 0000000..07c4fec
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/IDCardValidatorWithEmpty.java
@@ -0,0 +1,45 @@
+package com.ruoyi.web.controller.tool;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class IDCardValidatorWithEmpty {
+ // 定义支持空字符串的身份证号校验的正则表达式
+ private static final String ID_CARD_REGEX = "^$|(^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$)|(^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])((\\d{4})|\\d{3}[Xx])$)";
+ private static final String PHONE_REGEX = "^$|^1[3-9]\\d{9}$";
+ private static final Pattern ID_CARD_PATTERN = Pattern.compile(ID_CARD_REGEX);
+ private static final Pattern PHONE_PATTERN = Pattern.compile(PHONE_REGEX);
+
+ /**
+ * 校验身份证号的方法,允许空字符串
+ * @param idCard 待校验的身份证号
+ * @return 如果身份证号格式正确或者为空字符串返回 true,否则返回 false
+ */
+ public static boolean isValidIDCard(String idCard) {
+ Matcher matcher = ID_CARD_PATTERN.matcher(idCard);
+ return matcher.matches();
+ }
+ public static boolean isValidPhone(String phone) {
+ Matcher matcher = PHONE_PATTERN.matcher(phone);
+ return matcher.matches();
+ }
+
+ public static void main(String[] args) {
+ // 测试用的 15 位身份证号
+ String idCard15 = "110105880620517";
+ // 测试用的 18 位身份证号
+ String idCard18 = "51370119990231853X";
+ // 无效的身份证号
+ String invalidIdCard = "123456789012345678";
+ // 空字符串
+ String emptyIdCard = "";
+ String phone = "11212312312";
+
+ // 调用校验方法并输出结果
+ System.out.println(idCard15 + " 是否为有效的身份证号: " + isValidIDCard(idCard15));
+ System.out.println(idCard18 + " 是否为有效的身份证号: " + isValidIDCard(idCard18));
+ System.out.println(invalidIdCard + " 是否为有效的身份证号: " + isValidIDCard(invalidIdCard));
+ System.out.println("空字符串是否允许: " + isValidIDCard(emptyIdCard));
+ System.out.println(phone + "是否为有效的手机号: " + isValidPhone(phone));
+ }
+}
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeKeyGridUser.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeKeyGridUser.java
index 701eaf1..865288b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeKeyGridUser.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TLargeKeyGridUser.java
@@ -65,12 +65,12 @@
@TableField("user_sex")
private Integer userSex;
-// @Pattern(regexp = "^$|(^[1-9]\\\\d{7}((0\\\\d)|(1[0-2]))(([0-2]\\\\d)|3[0-1])\\\\d{3}$)|(^[1-9]\\\\d{5}[1-9]\\\\d{3}((0\\\\d)|(1[0-2]))(([0-2]\\\\d)|3[0-1])((\\\\d{4})|\\\\d{3}[Xx])$)",message = "身份证号格式不正确")
+// @Pattern(regexp = "^$|(^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$)|(^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])((\\d{4})|\\d{3}[Xx])$)",message = "身份证号格式不正确")
@ApiModelProperty(value = "身份证号")
@TableField("id_card")
private String idCard;
-// @Pattern(regexp = "^1[3-9]\\\\d{9}$",message = "手机号格式不正确")
+// @Pattern(regexp = "^$|^1[3-9]\\d{9}$",message = "手机号格式不正确")
@ApiModelProperty(value = "联系电话")
@TableField("contact_number")
private String contactNumber;
--
Gitblit v1.7.1