asp判断身份证号码是否输入正确
很多朋友在用asp做网站的时候,肯定会用到表单提交数据。最近我在做一个aspcms网站的里用到求职者报名系统。在提交表单的时候需要验证求职者的手机号码,身份证号码和电子邮件号码等是否输入正常。电子商务博客今天给大家分享如何使用asp判断身份证号码是否输入正确,ASP判断身份证号码输入是否正确函数代码。
<% Function checkIDCard(idcard) '-1为正确的身份证,否则为非法身份证 Dim Y, JYM Dim S, M Dim area area = "11,12,13,14,15,21,22,23,31,32,33,34,35,36,37,41,42,43,44,45,46,50,51,52,53,54,61,62,63,64,65,71,81,82,91" Dim ereg Set ereg = New regexp '地区检验 If InStr(1, area, Mid(idcard, 1, 2)) = 0 Then checkIDCard = 1: Exit Function '身份号码位数及格式检验 Select Case Len(idcard) Case 15 If ((CInt(Mid(idcard, 7, 2)) + 1900) Mod 4 = 0 or ((CInt(Mid(idcard, 7, 2)) + 1900) Mod 100 = 0 And (CInt(Mid(idcard, 7, 2)) + 1900) Mod 4 = 0)) Then ereg.Pattern = "^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$" ';//测试出生日期的合法性 Else ereg.Pattern = "^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$" ';//测试出生日期的合法性 End If If (ereg.test(idcard)) Then checkIDCard = -1 Else checkIDCard = 2 End If Case 18 '//18位身份号码检测 '//出生日期的合法性检查 If ((CInt(Mid(idcard, 7, 2)) + 1900) Mod 4 = 0 or ((CInt(Mid(idcard, 7, 2)) + 1900) Mod 100 = 0 And (CInt(Mid(idcard, 7, 2)) + 1900) Mod 4 = 0)) Then ereg.Pattern = "^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$" ';//闰年出生日期的合法性正则表达式 Else ereg.Pattern = "^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$" ';//平年出生日期的合法性正则表达式 End If If (ereg.test(idcard)) Then '//计算校验位 S = (CInt(Mid(idcard, 0 + 1, 1)) + CInt(Mid(idcard, 10 + 1, 1))) * 7 _ + (CInt(Mid(idcard, 1 + 1, 1)) + CInt(Mid(idcard, 11 + 1, 1))) * 9 _ + (CInt(Mid(idcard, 2 + 1, 1)) + CInt(Mid(idcard, 12 + 1, 1))) * 10 _ + (CInt(Mid(idcard, 3 + 1, 1)) + CInt(Mid(idcard, 13 + 1, 1))) * 5 _ + (CInt(Mid(idcard, 4 + 1, 1)) + CInt(Mid(idcard, 14 + 1, 1))) * 8 _ + (CInt(Mid(idcard, 5 + 1, 1)) + CInt(Mid(idcard, 15 + 1, 1))) * 4 _ + (CInt(Mid(idcard, 6 + 1, 1)) + CInt(Mid(idcard, 16 + 1, 1))) * 2 _ + CInt(Mid(idcard, 7 + 1, 1)) * 1 _ + CInt(Mid(idcard, 8 + 1, 1)) * 6 _ + CInt(Mid(idcard, 9 + 1, 1)) * 3 Y = S Mod 11 M = "F" JYM = "10X98765432" M = Mid(JYM, Y + 1, 1) If (M = Mid(idcard, 17 + 1, 1)) Then checkIDCard = -1 Else checkIDCard = 3 Else checkIDCard = 4 End If Case Else checkIDCard = Len(idcard) End Select End Function%>
郑州SEO优化
一直没了解过asp的内容
沈军
@郑州SEO优化:我也是因为工作需要对ASP才有的了解的。