电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

你还在为身份证校验种类不够而苦恼吗

来源:金蝶云社区作者:金蝶2024-09-233

你还在为身份证校验种类不够而苦恼吗



具体操作步骤请往下看↓




1 新建一个插件类

首先,新建一个插件类,类名例如:UserIdCardFormatValidatorPlugin2.java


主要逻辑说明见代码注释:


package kd.bos.sec.user;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.resource.ResManager;
import kd.bos.dataentity.utils.StringUtils;
import kd.bos.entity.ExtendedDataEntity;
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.AddValidatorsEventArgs;
import kd.bos.entity.validate.AbstractValidator;
import kd.bos.org.utils.Consts;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * 人员保存时,对身份证进行校验的插件
 * @author rd_chaohua_cheng
 */
public class UserIdCardFormatValidatorPlugin2 extends AbstractOperationServicePlugIn {
 @Override
 public void onAddValidators(AddValidatorsEventArgs e) {
  super.onAddValidators(e);
  e.addValidator(new UserIdCardFormatValidator2());
 }
 private static class UserIdCardFormatValidator2 extends AbstractValidator {
  @Override
  public void validate() {
   for (ExtendedDataEntity dataEntity : dataEntities) {
         DynamicObject userObj = dataEntity.getDataEntity();
         // 获取页面输入的身份证信息
         String idCard = userObj.getString(Consts.IDCARD);
         String errorMsg = "";
         if (StringUtils.isNotBlank(idCard)) {
          // 如果身份证输入有空格,去掉空格
          idCard = idCard.replaceAll(" ", "");
          userObj.set(Consts.IDCARD, idCard);
          // 校验身份证的正确性(可校验长度、格式及校验码),校验正确则不处理。
          // 如果校验失败就返回相应的错误信息。
          // 二次开发的主要实现部分如下:                    
          // 由于校验码检查较复杂这里省略掉
          // 下面的范例只判断身份证长度及正则表达式的一个简单做法。
          // 中国大陆身份证:18位长度;中国香港身份证:10位长度,样式Yabcdef(z)
          if (idCard.length() == 18) {
           String VERIFY_18_PATTERN_STR = "(\\d{6})" + "(\\d{8})" + "(\\d{3})" + "([\\d[xX]]{1})";
           Pattern VERIFY_18_PATTERN = Pattern.compile(VERIFY_18_PATTERN_STR);
           Matcher m = VERIFY_18_PATTERN.matcher(idCard);
           if (m.matches() == false) {
            errorMsg = "“中国大陆身份证号”格式不正确";
            // 把错误信息加入到提示语中。
            addErrorMessage(dataEntity, errorMsg);
           }
          } else if (idCard.length() == 10) {
           String VERIFY_HK_PATTERN_S

你还在为身份证校验种类不够而苦恼吗

具体操作步骤请往下看↓1 新建一个插件类首先,新建一个插件类,类名例如:UserIdCardFormatValidatorPlugin2.java主要逻辑说明见代码注释...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信