Closed yanghuichi closed 7 years ago
说明: 下方写一个公共的JS接口,共其他模块调用,加粗部分写正则表达式
当证件类型为“61-外国人永久居留身份证”时,系统需要对国籍、证件号码、证件有效期、姓名进行如下规则校验: 1、国籍规则校验: 1)当前页面存在国籍字段,则当证件类型为“61-外国人永久居留身份证”时,仅允许录入非中国国籍。若违反,保存时系统拦截报错:外国人永久居留身份证仅供非中国国籍客户使用! 2)校验说明:在初审和预收录入的投保人/被保人信息页面为提示报错;除此之外的为拦截报错 2、证件号码规则校验: 1)位数校验。证件号码位数必须为15位,若违反,则光标移开时系统弹出拦截信息:外国人永久居留身份证长度非法! 2)生日校验。判断当前页面是否存在出生日期字段 存在出生日期,则出生日期字段值必须与证件号码中的出生日期一致(比对关系见说明),若违反,保存时系统拦截报错 不存在出生日期,则不进行此校验 报错信息:出生日期与外国人永久居留身份证不符! 说明:出生日期校对码为第8位至第13位数(8-9位是出生年份的后两位,10-13位是出生月日 3)国籍校验。判断当前页面是否存在国籍字段 存在国籍字段,则国籍字段录入值必须不能为“中国”,若违反,保存时系统拦截报错 不存在国籍字段,则再判断该客户在核心表中国籍字段是否有值: 若有值,则字段值不能为“中国”,若违反,保存时系统拦截报错 若无值,则不进行此校验 报错信息:国籍与外国人永久居留身份证不符!外国人永久居留身份证仅供非中国国籍客户使用! 4)合法性校验。校验出生年月是否合法,若违反,则光标移开时系统弹出拦截信息:外国人永久居留身份证的证件号错误! 说明:出生年月校对码为第8位至第13位数(8-9位是出生年份的后两位,10-13位是出生月日):出生月日需符合日期编码,若不符合则非法 5)校验说明:对于第3)点校验在初审和预收录入的投保人/被保人/受益人/账号录入信息页面为提示报错;除此之外的为拦截报错
3、证件有效期规则校验: 1)证件有效期必录,若违反,保存时系统报错:请录入证件有效期 2)若投保时客户年龄小于18周岁,且使用外国人永久居留身份证,则证件有效期不能大于当前投保日期+5年。若违反,保存时系统报错:外国人永久居留身份证的证件有效期错误! 3)若投保时客户年龄大于或等于18周岁的,且使用外国人永久居留身份证投保,则证件有效期不能大于当前投保日期+10年。若违反,保存时系统报错:外国人永久居留身份证的证件有效期错误! 4)校验说明:对于1)、2)、3)点,在初审和预收录入的投保人/被保人/受益人/账号录入信息页面为提示报错;除此之外的为拦截报错。
4、 姓名规则校验(在现有规则基础上增加校验): 1)姓名必须为英文字段,若违反,保存时系统报错:当前证件类型仅允许录入英文姓名 2)姓名中间仅允许存在空格或逗号(半角),若违反,保存时系统报错:请录入正确的英文姓名 3)客户姓名必需为大写字母的英文字母。若前端录入为小写,系统自动转换为大写 4)客户姓名为英文姓名时,客户姓名前后无空格,姓名中间使用逗号(半角)。若前端录入时在姓名前后带空格,系统自动去除前后空格;在姓名中间的空格,系统自动转换为逗号(半角)。 校验说明:对于1)、2)点,在初审和预收录入的投保人/被保人/受益人/账号录入信息页面为提示报错;除此之外的为拦截报错
证件照片补充说明,如上图
如:CAN110081080319,前三位是国籍代码:CAN指的是 加拿大
出生日期校对码为第8位至第13位数(8-9位是出生年份的后两位,10-13位是出生月日
关于证件号码,需要写出2种备选方案: 1、只校验15位的长度即可 (正则表达式是:^.{15}$)
2、共15位,前三位大写字母,后12位都是数字 (正则表达式是:^[A-Z]{3}\d{12}$)
首先你提出的身份证号码的需求很复杂,用一个正则表达式完成几乎不可能。 所以,我们分成几个表达式,一步一步地来验证。
位数校验。证件号码位数必须为15位,且前三位必须是大写字母,后12位必须是数字。
对应正则表达式 ^[A-Z]{3}\d{12}$
出生日期校对码为第8位至第13位数(8-9位是出生年份的后两位,10-13位是出生月日)
如果知道确切的出生年月日(YYMMDD)的话,比如811201
那么对应的正则表达式 ^.{7}811201.{2}$
如果不知道的话,只能校验8-9位是连个数字,10-11位保证在01到12中,12-13位保证在01到31中。
对应正则表达式 ^.{7}\d{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01]).{2}$
保证YYMMDD是一个合法日期,几乎可能。
正则表达式不能做运算,不能大小比较。所以你提的和投保日的关联性check做不到。
@eulerlcs
4、 姓名规则校验(在现有规则基础上增加校验): 1)姓名必须为英文字段,若违反,保存时系统报错:当前证件类型仅允许录入英文姓名 2)姓名中间仅允许存在空格或逗号(半角),若违反,保存时系统报错:请录入正确的英文姓名 3)客户姓名必需为大写字母的英文字母。若前端录入为小写,系统自动转换为大写 4)客户姓名为英文姓名时,客户姓名前后无空格,姓名中间使用逗号(半角)。若前端录入时在姓名前后带空格,系统自动去除前后空格;在姓名中间的空格,系统自动转换为逗号(半角)。
关于姓名这块的校验能写正则表达式不,逐条写一个?
其余的我就不帮你写了,太多了,我回答不过来。 你自己结合我讲课的ppt,还有那本书,再上网搜搜。 学以致用,好吗,请谅解。
需求见下方