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




具体操作步骤请往下看↓
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格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



