怎样用javascript做个身份证号码验证?? 15
界面如下:<formaction="reg2.asp"onsubmit="returnVerifyInput();"method="post"name="myform"i...
界面如下:<form action="reg2.asp" onsubmit="return VerifyInput();" method="post" name="myform" id="myform">
<table width="300" height="150" border="1" align="center" bordercolor="#000000">
<tr>
<td>用户名:</td>
<td><label>
<input name="name" type="text" id="name" />
</label></td>
</tr>
<tr>
<td>身份证:</td>
<td><label>
<input name="shenfeng" type="text" id="shenfeng" />
</label></td>
</tr>
<tr>
<td>重复身份证:</td>
<td><label>
<input name="shenfeng2" type="text" id="shenfeng2" />
</label></td>
</tr>
<tr>
<td colspan="2" align="center"><label>
<input type="submit" name="Submit" value="提交" /><input name="" type="reset" value="重置" />
</label></td>
</tr>
</table>
</form>
请高手帮忙编一下,本人对javascript不是很熟!
请不要乱回答 展开
<table width="300" height="150" border="1" align="center" bordercolor="#000000">
<tr>
<td>用户名:</td>
<td><label>
<input name="name" type="text" id="name" />
</label></td>
</tr>
<tr>
<td>身份证:</td>
<td><label>
<input name="shenfeng" type="text" id="shenfeng" />
</label></td>
</tr>
<tr>
<td>重复身份证:</td>
<td><label>
<input name="shenfeng2" type="text" id="shenfeng2" />
</label></td>
</tr>
<tr>
<td colspan="2" align="center"><label>
<input type="submit" name="Submit" value="提交" /><input name="" type="reset" value="重置" />
</label></td>
</tr>
</table>
</form>
请高手帮忙编一下,本人对javascript不是很熟!
请不要乱回答 展开
5个回答
展开全部
function VerifyInput(){
var CardNo=document.myform.shenfeng.value;
var CardNo2=document.myform.shenfeng2.value;
if(CardNo!=CardNo2){
alert("2次输入数据不一致!从新输入!");
return false;
}
if ((CardNo == "")||(!(isNumber(CardNo))&&(CardNo.length == 15))||(!(isNumber(CardNo.substr(0,17)))&&(CardNo.length == 18))||((CardNo.length != 15)&&(CardNo.length != 18)))
{
alert("您的身份证号码输入有误,必需是15数字或18位,请重新检查并输入!");
return false;
}
else if (CardNo.length == 15)
{
if(CardNo.substr(8,2)>12||CardNo.substr(8,2)<1)
{
alert("您身份证的出生“月”输入有误,请重新检查并输入!");
return false;
}
if(CardNo.substr(10,2)>31||CardNo.substr(10,2)<1)
{
alert("您身份证的出生“日”输入有误,请重新检查并输入!");
return false;
}
}
else if (CardNo.length == 18)
{
if(CardNo.substr(6,4)<1900||CardNo.substr(6,4)>2100)
{
alert("您身份证的出生“年”输入有误,请重新检查并输入!");
return false;
}
if(CardNo.substr(10,2)>12||CardNo.substr(10,2)<1)
{
alert("您身份证的出生“月”输入有误,请重新检查并输入!");
return false;
}
if(CardNo.substr(12,2)>31||CardNo.substr(12,2)<1)
{
alert("您身份证的出生“日”输入有误,请重新检查并输入!");
return false;
}
}
var Wi = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
var Ai = new Array('1','0','X','9','8','7','6','5','4','3','2');
if (CardNo.charAt(17) == 'x')
{
CardNo = CardNo.replace("x","X");
}
var checkDigit = CardNo.charAt(17);
var cardNoSum = 0;
for (var i=0; i<CardNo.length-1; i++)
{
cardNoSum = cardNoSum + CardNo.charAt(i)*Wi[i];
}
var seq = cardNoSum%11;
var getCheckDigit = Ai[seq];
if (checkDigit != getCheckDigit)
{
alert("您的身份证号码校验失败,请重新检查并输入!");
return false;
}
return true;
}
else
{
return true;
}
}
var CardNo=document.myform.shenfeng.value;
var CardNo2=document.myform.shenfeng2.value;
if(CardNo!=CardNo2){
alert("2次输入数据不一致!从新输入!");
return false;
}
if ((CardNo == "")||(!(isNumber(CardNo))&&(CardNo.length == 15))||(!(isNumber(CardNo.substr(0,17)))&&(CardNo.length == 18))||((CardNo.length != 15)&&(CardNo.length != 18)))
{
alert("您的身份证号码输入有误,必需是15数字或18位,请重新检查并输入!");
return false;
}
else if (CardNo.length == 15)
{
if(CardNo.substr(8,2)>12||CardNo.substr(8,2)<1)
{
alert("您身份证的出生“月”输入有误,请重新检查并输入!");
return false;
}
if(CardNo.substr(10,2)>31||CardNo.substr(10,2)<1)
{
alert("您身份证的出生“日”输入有误,请重新检查并输入!");
return false;
}
}
else if (CardNo.length == 18)
{
if(CardNo.substr(6,4)<1900||CardNo.substr(6,4)>2100)
{
alert("您身份证的出生“年”输入有误,请重新检查并输入!");
return false;
}
if(CardNo.substr(10,2)>12||CardNo.substr(10,2)<1)
{
alert("您身份证的出生“月”输入有误,请重新检查并输入!");
return false;
}
if(CardNo.substr(12,2)>31||CardNo.substr(12,2)<1)
{
alert("您身份证的出生“日”输入有误,请重新检查并输入!");
return false;
}
}
var Wi = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
var Ai = new Array('1','0','X','9','8','7','6','5','4','3','2');
if (CardNo.charAt(17) == 'x')
{
CardNo = CardNo.replace("x","X");
}
var checkDigit = CardNo.charAt(17);
var cardNoSum = 0;
for (var i=0; i<CardNo.length-1; i++)
{
cardNoSum = cardNoSum + CardNo.charAt(i)*Wi[i];
}
var seq = cardNoSum%11;
var getCheckDigit = Ai[seq];
if (checkDigit != getCheckDigit)
{
alert("您的身份证号码校验失败,请重新检查并输入!");
return false;
}
return true;
}
else
{
return true;
}
}
展开全部
var sf=document.getElmentById("shenfeng");
if(sf.length==15 || sf.length==18){
//是身份证的操作
}
else{
//不是身份证的操作
}
这个是靠长度来判断的.
至于什么省市区的规则我也不明白 - - 没法写
if(sf.length==15 || sf.length==18){
//是身份证的操作
}
else{
//不是身份证的操作
}
这个是靠长度来判断的.
至于什么省市区的规则我也不明白 - - 没法写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
18位身份证....
XXXXXX-XXXX-XX-XX-XXXX
省市区- 年 -月-日-个人编号
对应对其验证一下就知道是不是身份证了.
XXXXXX-XXXX-XX-XX-XXXX
省市区- 年 -月-日-个人编号
对应对其验证一下就知道是不是身份证了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
去找验证身份证的正则表达示!然后用js验证就OK了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上面的回答很好啊~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询