马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
SQLServer是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。本文非原创,只是综合了两三个文章收拾在一同的。
我们要考证身份证号是不是准确,就得先懂得身份证号的含义。
身份证号都代表甚么意义?
1、号码的布局
国民身份号码是特性组合码,由十七位数字本体码和一名校验码构成。分列按次从左至右顺次为:六位数字地点码,八位数字出身日期码,三位数字按次码和一名数字校验码。
2、地点码(前六位数)
暗示编码工具常住户口地点县(市、旗、区)的行政区划代码,按GB/T2260的划定实行。
3、出身日期码(第七位至十四位)
暗示编码工具出身的年、月、日,按GB/T7408的划定实行,年、月、日代码之间不必分开符。
4、按次码(第十五位至十七位)
暗示在统一地点码所标识的地区局限内,对同年、同月、同日出身的人编定的按次号,按次码的奇数分派给男性,偶数分派给女性。
5、校验码(第十八位数)
(1)十七位数字本体码加权乞降公式
S=Sum(Ai*Wi),i=0,...,16,先对前17位数字的权乞降
Ai:暗示第i地位上的身份证号码数字值
Wi:暗示第i地位上的加权因子
Wi:7910584216379105842
(2)盘算模
Y=mod(S,11)
(3)经由过程模失掉对应的校验码
Y:012345678910
校验码:10X98765432
以是我们就能够大抵写一个函数来校验是不是准确了。
考证身份证号ASP代码函数以下
代码拷贝框
FunctionIDCheck(e)IDCheck=truearrVerifyCode=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",",")IfLen(e)<15OrLen(e)=16OrLen(e)=17OrLen(e)>18ThenIDCheck="身份证号共有15码或18位"IDCheck=FalseExitFunctionEndIfDimAiIfLen(e)=18ThenAi=Mid(e,1,17)ElseIfLen(e)=15ThenAi=eAi=Left(Ai,6)&"19"&Mid(Ai,7,9)EndIfIfNotIsNumeric(Ai)ThenIDCheck="身份证除最初一名外,必需为数字!"IDCheck=FalseExitFunctionEndIfDimstrYear,strMonth,strDaystrYear=CInt(Mid(Ai,7,4))strMonth=CInt(Mid(Ai,11,2))strDay=CInt(Mid(Ai,13,2))BirthDay=Trim(strYear)+"-"+Trim(strMonth)+"-"+Trim(strDay)IfIsDate(BirthDay)ThenIfDateDiff("yyyy",Now,BirthDay)<-140orcdate(BirthDay)>date()ThenIDCheck="身份证输出毛病!"IDCheck=FalseExitFunctionEndIfIfstrMonth>12OrstrDay>31ThenIDCheck=FalseIDCheck="身份证输出毛病!"ExitFunctionEndIfElseIDCheck="身份证输出毛病!"IDCheck=FalseExitFunctionEndIfDimi,TotalmulAiWiFori=0To16TotalmulAiWi=TotalmulAiWi+CInt(Mid(Ai,i+1,1))*Wi(i)NextDimmodValuemodValue=TotalmulAiWiMod11DimstrVerifyCodestrVerifyCode=arrVerifyCode(modValue)Ai=Ai&strVerifyCodeIDCheck=AiIfLen(e)=18AndeAiThenIDCheck="身份证号码输出毛病!"IDCheck=FalseExitFunctionEndIfEndFunction
[Ctrl+A全体选择然后拷贝]
别的,假如能分离用户所填写的区域、诞辰,做相干的校验,那就更完善了。基础没有举措把这个号填错了。哈哈。除非是填他人的正确信息和身份证号,
缺乏可以共同遵循的行业标准,ASP还处在发展初期,大家对它的理解不同,如产品和服务标准,收费标准等,不利于行业的健康发展。 |