定义一个验证中华人民共和国身份证号码的正则表达式?
发布网友
发布时间:2022-04-21 08:23
我来回答
共2个回答
懂视网
时间:2022-04-21 12:45
需要一个简单的验证身份证号的正则表达式,从网上查了很多,都有问题,主要是只要超过15位,都能够通过,于是自己查了半天手册,写了下面这个式子,能够满足简单的要求:
1、15位或18位,如果是15位,必需全是数字。
2、如果是18位,最后一位可以是数字或字母Xx,其余必需是数字。
/^(d{15}|d18|^d{17}(d|X|x))$/
从这个表达式想到的:
1、正则表达式首先是要通过正确的
2、限制不正确
3、可以不限制其中的某此规则,但一定要让正确的先通过。
热心网友
时间:2022-04-21 09:53
您好,非常荣幸能在此回答您的问题。以下是我对此问题的部分见解,若有错误,欢迎指出。
|
1、创建测试表,create table test_certno(cert_no varchar2(50));
2、插入验证数据;
insert into test_certno values('311224198611012011');
insert into test_certno values('301224195509012011');
insert into test_certno values('211224199610012011');
insert into test_certno values('21122419961001201X');
insert into test_certno values('321224199018012011');
insert into test_certno values('101224198700012011');非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!