怎么较验输入的身份证号是否正确?

来源:百度知道 编辑:UC知道 时间:2024/05/29 09:26:36
我现在做的程序有一个地方要输入身份证号,我想知道校对身份证号可以从哪些方面?我现在只知道身份证号是全数字的,位数是十八位,还有哪些规则是固定的?

这样可以减少因为人误导致输入的身份证号不正确
我的意思是,在写程序的时候,要用哪些规则去约束输入的身份证号?

aries1001 我看了你的代码:
int intYearLength = DateBirthDay.Year - DateBirthDay.Year;
if (intYearLength < -140)
{
return false;
}
这段中的intYearLength不是固定为零吗?
还有就是你的代码很长,所以觉得算法普通不是很好。不过谢谢你提醒了我,身份证号中有X

我自己写的,简单多了:
if(!isdigit(Key)&&Key!=VK_BACK&&Key!=88)Key=0;
if(Key==13){
if(DBEdit2->Text.Length()!=18){ShowMessage("身份证号位数不够");return;}

TDate t;
try{
t=DBEdit2->Text.SubString(7,8);
}
catch(...){ShowMessage("身份证号码不存在");return;}
if(Date()-t<16*365||Date()-t>70*365){ShowMessage("未满十六周岁或高于七十岁不能入职,请检查身份证号!");return;}
}

C++ Builder 6.0下测试通过

哎,还是我来告诉你吧
http://www.94nn.com/blog/article.asp?id=249
我博客中写好的代码,直接调用就可以了,是有算法的.

前6位表示地区,接下来8位表示生日,剩下4为才是校对用的,有一定规则。
你直接去网上查询身份证是否合法

好像最后一位奇数为男,偶数为女