正则表达式验证身份证(身份证得正则正则表达式是什么)

本文目录
- 身份证得正则正则表达式是什么
- 如何用正则表达式实现对身份证的验证啊在线等
- 如何用javascript正则表达式验证身份证号
- 身份证号码的验证正则表达式(同时匹配新旧)
- 定义一个验证中华人民共和国身份证号码的正则表达式
- java用正则表达式判断一个18位身份证号是否有效
- 正则表达式如何验证身份证号
身份证得正则正则表达式是什么
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’);
3、编写正则表达式sql;select * from test_certno a, (select * from test_certno t where REGEXP_LIKE(t.cert_no, ’(^\d{5}(18|19|(\d))\d{2}((0)|(10|11|12))(()|10|20|30|31)\d{3}[0-9Xx]$)|(^\d{5}\d{2}((0)|(10|11|12))(()|10|20|30|31)\d{2}[0-9Xx]$)’)) b where a.cert_no = b.cert_no(+)
4、查询验证结果,发现未匹配上的身份证号码;
如何用正则表达式实现对身份证的验证啊在线等
15位数身份证验证正则表达式:isIDCard1=/^\d{7}((0\d)|(1))(([0|1|2]\d)|3)\d{3}$/;18位数身份证验证正则表达式:isIDCard2=/^\d{5}\d{3}((0\d)|(1))(([0|1|2]\d)|3)\d{3}(|X)$/;
如何用javascript正则表达式验证身份证号
很简单
function CheckCardNo(card){
// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if(reg.test(card) === false)
{
alert(“身份证输入不合法“);
return false;
}
}
CheckCardNo(’123456778’);
身份证号码的验证正则表达式(同时匹配新旧)
//身份证正则表达式(15位)
isIDCard1=/^\d{7}((0\d)|(1))(([0|1|2]\d)|3)\d{3}$/;
//身份证正则表达式(18位)
isIDCard2=/^\d{5}\d{3}((0\d)|(1))(([0|1|2]\d)|3)\d{4}$/;
再PS个
这个是别人的,我们没有用,
更健壮的 地区和身份证的关系也判断到 还有性别
《script》
var
aCity={11:“北京“,12:“天津“,13:“河北“,14:“山西“,15:“内蒙古“,21:“辽宁“,22:“吉林“,23:“黑龙江“,31:“上海“,32:“江苏“,33:“浙江“,34:“ 《br/》《br/》安徽“,35:“福建“,36:“江西“,37:“山东“,41:“河南“,42:“湖北“,43:“湖南“,44:“广东“,45:“广西“,46:“海南“,50:“重庆“,51:“四川“,52:“贵州“ 《br/》《br/》,53:“云南“,54:“西藏“,61:“陕西“,62:“甘肃“,63:“青海“,64:“宁夏“,65:“新疆“,71:“台湾“,81:“香港“,82:“澳门“,91:“国外“}
function cidInfo(sId){
var iSum=0
var info=““
if(!/^\d{17}(\d|x)$/i.test(sId))return false;
sId=sId.replace(/x$/i,“a“);
if(aCity[parseInt(sId.substr(0,2))]==null)return “Error:非法地区“;
sBirthday=sId.substr(6,4)+“-“+Number(sId.substr(10,2))+“-“+Number(sId.substr(12,2));
var d=new Date(sBirthday.replace(/-/g,“/“))
if(sBirthday!=(d.getFullYear()+“-“+ (d.getMonth()+1) + “-“ + d.getDate()))return “Error:非法生日“;
for(var i = 17;i》=0;i --) iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11)
if(iSum%11!=1)return “Error:非法证号“;
return aCity[parseInt(sId.substr(0,2))]+“,“+sBirthday+“,“+(sId.substr(16,1)%2?“男“:“女“)
}
《/script》
定义一个验证中华人民共和国身份证号码的正则表达式
您好,非常荣幸能在此回答您的问题。以下是我对此问题的部分见解,若有错误,欢迎指出。
|
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’);非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
java用正则表达式判断一个18位身份证号是否有效
很显然 是你得正则表达式不对啊,正确的18位身份证验证正则为:
String regex = “^\\d{5}(18|19|(\\d))\\d{2}((0)|(10|11|12))(()|10|20|30|31)\\d{3}[0-9Xx]$“;而且就算正则表达式正确了,你的逻辑判断代码也是有问题,
完成代码如下,请参考:
public class Homework {public static void main(String args) {
String regex = “^\\d{5}(18|19|(\\d))\\d{2}((0)|(10|11|12))(()|10|20|30|31)\\d{3}[0-9Xx]$“;
System.out.println(“请输入18位的身份证号码:“);
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
if (s.matches(regex)) {
int y1, y2;
String year1 = s.substring(6, 8);
y1 = Integer.parseInt(year1);
String year2 = s.substring(8, 10);
y2 = Integer.parseInt(year2);
if ((y1 == 18 && y2 》= 87 && y2 《= 89)
|| (y1 == 19 && y2 》= 0 && y2 《= 99)
|| (y1 == 20 && y2 《= 17)) {
int m, d;
String month = s.substring(10, 12);
m = Integer.parseInt(month);
String day = s.substring(12, 14);
d = Integer.parseInt(day);
if ((m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
&& (d == 31))
System.out.println(“有效“);
else if ((m == 4 || m == 6 || m == 9 || m == 11) && (d == 30))
System.out.println(“有效“);
else if (m == 2) {
int y;
String year = s.substring(6, 10);
y = Integer.parseInt(year);
if (((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
&& (d == 29))
System.out.println(“有效“);
else if (((y % 4 != 0 && y % 100 == 0) || y % 400 != 0)
&& (d == 28))
System.out.println(“有效“);
else
System.out.println(“无效“);
return;
} else {
System.out.println(“无效“);
return;
}
int ss;
String sex = s.substring(16, 17);
ss = Integer.parseInt(sex);
if (ss % 2 == 0)
System.out.println(“女性“);
else
System.out.println(“男性“);
} else
System.out.println(“无效“);
} else
System.out.println(“无效“);
}
}
正则表达式如何验证身份证号
Function IDCheck(e)
IDCheck = true
arrVerifyCode = Split(“1,0,x,9,8,7,6,5,4,3,2“, “,“)
Wi = Split(“7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2“, “,“)
Checker = Split(“1,9,8,7,6,5,4,3,2,1,1“, “,“)
If Len(e) 《 15 Or Len(e) = 16 Or Len(e) = 17 Or Len(e) 》 18 Then
’IDCheck= “身份证号共有 15 码或18位“
IDCheck = False
Exit Function
End If
Dim Ai
If Len(e) = 18 Then
Ai = Mid(e, 1, 17)
ElseIf Len(e) = 15 Then
Ai = e
Ai = Left(Ai, 6) & “19“ & Mid(Ai, 7, 9)
End If
If Not IsNumeric(Ai) Then
’IDCheck= “身份证除最后一位外,必须为数字!“
IDCheck = False
Exit Function
End If
Dim strYear, strMonth, strDay
strYear = CInt(Mid(Ai, 7, 4))
strMonth = CInt(Mid(Ai, 11, 2))
strDay = CInt(Mid(Ai, 13, 2))
BirthDay = Trim(strYear) + “-“ + Trim(strMonth) + “-“ + Trim(strDay)
If IsDate(BirthDay) Then
If DateDiff(“yyyy“,Now,BirthDay)《-140 or cdate(BirthDay)》date() Then
’IDCheck= “身份证输入错误!“
IDCheck = False
Exit Function
End If
If strMonth 》 12 Or strDay 》 31 Then
IDCheck = False
’IDCheck= “身份证输入错误!“
Exit Function
End If
Else
’IDCheck= “身份证输入错误!“
IDCheck = False
Exit Function
End If
Dim i, TotalmulAiWi
For i = 0 To 16
TotalmulAiWi = TotalmulAiWi + CInt(Mid(Ai, i + 1, 1)) * Wi(i)
Next
Dim modValue
modValue = TotalmulAiWi Mod 11
Dim strVerifyCode
strVerifyCode = arrVerifyCode(modValue)
Ai = Ai & strVerifyCode
IDCheck = Ai
If Len(e) = 18 And e 〈〉 Ai Then
’IDCheck= “身份证号码输入错误!“
IDCheck = False
Exit Function
End If
End Function

更多文章:
repercussions(都是余波,repercussions和aftermath有什么区别啊)
2026年10月11日 09:00
dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)
2026年10月11日 08:50
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00




