身份证号码验证兼15位转18位程序(javascript版)
来源:互联网 发布:java 英文面试题 编辑:程序博客网 时间:2024/06/11 09:15
身份证号码验证兼15位转18位程序
今个想用个身份证号码验证程序,从网上找了个半天,没有找到客户端(javascript)版的,于是就做了个。想用的就把HTML标签之间的考到一个扩展名为HTML的文件中,就可以使了。
本程序没有判断前6位地区编码,因为我这也没有这方面的资料,有兴趣的朋友自己要费点力了!其实也没有这么复杂,我们又不是查户口的要这么细干什么,呵呵!
用程序的朋友随便改好了,也不是很难。但是转载的朋友可不要乱删注释呀!
开始时还发现了一个小错误,感谢liuyuan_zy的纠正,在此感谢一下。
原先也不知道怎么搞了,显示出来代码变成了两份。
<html>
<body>
<form>
<script language=javascript>...
<!--
/**//********************************************************************************************
* 身份证号码验证程序(JAVASCRIPT版)
* 时间: 2005年9月14日
* 作者: 王飞
* 邮箱: feiboy@126.com QQ:106469321
* 地址: 山东省东营市
* ★文章转载请保留本注释信息,谢谢合作★
*
*本程序为示例程序,使用可根据本程序进行修改。
********************************************************************************************/
/**//************************************************************************************************
* 身份证号码验证程序
* 函数一:checkCard(cId) 身份号码检验函数
* 参数cId为要验证的身份证号码,返回值为true时,验证通过。
* 对一些位置保留了alert()的注释,可供朋友调试使用
* 函数二:C15ToC18(c15) 15位身份证号码升级为18位函数
* 参数c15为要转换的15位身份证号码,返回值为转化后的18位号码
* 如果参数不是有效15位号码,返回值为"undefined"。
* 函数三:isdate(intYear,intMonth,intDay) 日期检验函数
* 参数分别是年月日,返回值为true时,验证通过。
************************************************************************************************/
//检查年月日是否是合法日期
function isdate(intYear,intMonth,intDay)...{
if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) return false;
if(intMonth>12||intMonth<1) return false;
if ( intDay<1||intDay>31)return false;
if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30)) return false;
if(intMonth==2)...{
if(intDay>29) return false;
if((((intYear%100==0)&&(intYear%400!=0))||(intYear%4!=0))&&(intDay>28))return false;
}
return true;
}
//检查身份证是否是正确格式
function checkCard(cId)
...{
var pattern;
if (cId.length==15)
...{
pattern= /^d...{15}$/;//正则表达式,15位且全是数字
if (pattern.exec(cId)==null)
...{
// alert("15位身份证号码必须为数字!")
return false;
}
if (!isdate("19"+cId.substring(6,8),cId.substring(8,10),cId.substring(10,12)))
...{
// alert("身份证号码中所含日期不正确")
return false;}
}
else if (cId.length==18)
...{
pattern= /^d...{17}(d|x|X)$/;//正则表达式,18位且前17位全是数字,最后一位只能数字,x,X
if (pattern.exec(cId)==null)
...{
// alert("18位身份证号码必须为数字!")
return false;
}
if (!isdate(cId.substring(6,10),cId.substring(10,12),cId.substring(12,14)))
...{
// alert("身份证号码中所含日期不正确")
return false;
}
var strJiaoYan =[ "1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];
var intQuan =[7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1];
var intTemp=0;
for(i = 0; i < cId.length - 1; i++)
intTemp += cId.substring(i, i + 1) * intQuan[i];
intTemp %= 11;
if(cId.substring(cId.length - 1,cId.length).toUpperCase()!=strJiaoYan[intTemp])
...{
// alert("验证码失败!"+strJiaoYan[intTemp])
return false;
}
}
else
...{
alert("长度必须为15或18!")
return false;
}
return true;
}
//升级15位身份证号码到18位
function C15ToC18(c15)
...{
var cId;
if (c15.length==15)
...{
pattern= /^d...{15}$/;
if (pattern.exec(c15)==null)
...{
// alert("15位身份证号码必须为数字!")
return ;
}
if (!isdate("19"+c15.substring(6,8),c15.substring(8,10),c15.substring(10,12)))
...{
//alert("身份证号码中所含日期不正确")
return ;
}
cId=c15.substring(0,6)+"19"+c15.substring(6,15);
var strJiaoYan =[ "1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];
var intQuan =[7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1];
var intTemp=0;
for(i = 0; i < cId.length ; i++)
intTemp += cId.substring(i, i + 1) * intQuan[i];
intTemp %= 11;
cId+=+strJiaoYan[intTemp];
return cId;
}
return;
}
-->
</script>
<script>...
/**//*
*除了验证号码是否正确外,多做了让出错控件获取焦点,字体颜色变红的动作,更为实用一些。
*/
function checkSfhm(c)
...{
if (!checkCard(c.value))
...{
c.style.color="#ff0000";
alert("身份证号码不正确");
c.focus();
}
else
c.style.color="#000000";
}
</script>
<table>
<tr>
<td>
身份证一 <input type="text" name="hm1" value='371323198301086311'> <br>
<input type="button" onclick="javascript:if(checkCard(hm1.value)) alert('通过')" id="Button1" name="Button1" value="验证身份证一">
</td>
</tr>
<tr>
<td>
15位身份证 <input type="text" name="hm3" value='370783811028671' onBlur="javascript:hm4.value=C15ToC18(this.value)"> <br>
转化后身份证 <input type="text" name="hm4" value=''> <br>
<input type="button" onclick="javascript:hm4.value=C15ToC18(hm3.value);" id="Button2" name="Button2"value=" 转 化 ">
</td>
</tr>
</table>
</form>
</body>
</html>
<html>
<body>
<form>
<script language=javascript>...
<!--
/**//********************************************************************************************
* 身份证号码验证程序(JAVASCRIPT版)
* 时间: 2005年9月14日
* 作者: 王飞
* 邮箱: feiboy@126.com QQ:106469321
* 地址: 山东省东营市
* ★文章转载请保留本注释信息,谢谢合作★
*
*本程序为示例程序,使用可根据本程序进行修改。
********************************************************************************************/
/**//************************************************************************************************
* 身份证号码验证程序
* 函数一:checkCard(cId) 身份号码检验函数
* 参数cId为要验证的身份证号码,返回值为true时,验证通过。
* 对一些位置保留了alert()的注释,可供朋友调试使用
* 函数二:C15ToC18(c15) 15位身份证号码升级为18位函数
* 参数c15为要转换的15位身份证号码,返回值为转化后的18位号码
* 如果参数不是有效15位号码,返回值为"undefined"。
* 函数三:isdate(intYear,intMonth,intDay) 日期检验函数
* 参数分别是年月日,返回值为true时,验证通过。
************************************************************************************************/
//检查年月日是否是合法日期
function isdate(intYear,intMonth,intDay)...{
if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) return false;
if(intMonth>12||intMonth<1) return false;
if ( intDay<1||intDay>31)return false;
if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30)) return false;
if(intMonth==2)...{
if(intDay>29) return false;
if((((intYear%100==0)&&(intYear%400!=0))||(intYear%4!=0))&&(intDay>28))return false;
}
return true;
}
//检查身份证是否是正确格式
function checkCard(cId)
...{
var pattern;
if (cId.length==15)
...{
pattern= /^d...{15}$/;//正则表达式,15位且全是数字
if (pattern.exec(cId)==null)
...{
// alert("15位身份证号码必须为数字!")
return false;
}
if (!isdate("19"+cId.substring(6,8),cId.substring(8,10),cId.substring(10,12)))
...{
// alert("身份证号码中所含日期不正确")
return false;}
}
else if (cId.length==18)
...{
pattern= /^d...{17}(d|x|X)$/;//正则表达式,18位且前17位全是数字,最后一位只能数字,x,X
if (pattern.exec(cId)==null)
...{
// alert("18位身份证号码必须为数字!")
return false;
}
if (!isdate(cId.substring(6,10),cId.substring(10,12),cId.substring(12,14)))
...{
// alert("身份证号码中所含日期不正确")
return false;
}
var strJiaoYan =[ "1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];
var intQuan =[7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1];
var intTemp=0;
for(i = 0; i < cId.length - 1; i++)
intTemp += cId.substring(i, i + 1) * intQuan[i];
intTemp %= 11;
if(cId.substring(cId.length - 1,cId.length).toUpperCase()!=strJiaoYan[intTemp])
...{
// alert("验证码失败!"+strJiaoYan[intTemp])
return false;
}
}
else
...{
alert("长度必须为15或18!")
return false;
}
return true;
}
//升级15位身份证号码到18位
function C15ToC18(c15)
...{
var cId;
if (c15.length==15)
...{
pattern= /^d...{15}$/;
if (pattern.exec(c15)==null)
...{
// alert("15位身份证号码必须为数字!")
return ;
}
if (!isdate("19"+c15.substring(6,8),c15.substring(8,10),c15.substring(10,12)))
...{
//alert("身份证号码中所含日期不正确")
return ;
}
cId=c15.substring(0,6)+"19"+c15.substring(6,15);
var strJiaoYan =[ "1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];
var intQuan =[7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1];
var intTemp=0;
for(i = 0; i < cId.length ; i++)
intTemp += cId.substring(i, i + 1) * intQuan[i];
intTemp %= 11;
cId+=+strJiaoYan[intTemp];
return cId;
}
return;
}
-->
</script>
<script>...
/**//*
*除了验证号码是否正确外,多做了让出错控件获取焦点,字体颜色变红的动作,更为实用一些。
*/
function checkSfhm(c)
...{
if (!checkCard(c.value))
...{
c.style.color="#ff0000";
alert("身份证号码不正确");
c.focus();
}
else
c.style.color="#000000";
}
</script>
<table>
<tr>
<td>
身份证一 <input type="text" name="hm1" value='371323198301086311'> <br>
<input type="button" onclick="javascript:if(checkCard(hm1.value)) alert('通过')" id="Button1" name="Button1" value="验证身份证一">
</td>
</tr>
<tr>
<td>
15位身份证 <input type="text" name="hm3" value='370783811028671' onBlur="javascript:hm4.value=C15ToC18(this.value)"> <br>
转化后身份证 <input type="text" name="hm4" value=''> <br>
<input type="button" onclick="javascript:hm4.value=C15ToC18(hm3.value);" id="Button2" name="Button2"value=" 转 化 ">
</td>
</tr>
</table>
</form>
</body>
</html>
<html>
- 身份证号码验证兼15位转18位程序(javascript版)
- Javascript实现身份证号码15位转18位的算法
- 身份证号码15位升18位身份证18位验证
- 中国身份证号码验证,支持15,18位
- 中国身份证号码验证 支持15,18位
- 中国身份证号码验证,支持15,18位
- 15位身份证号码转18位
- 身份证号码15位转18位
- 身份证号码的验证及15位升18位算法
- Java身份证号码验证及将15位转换18位
- 15位或18位长度身份证号码JS验证
- Javascript js 身份证号码 检测 规则 18位 15位
- php 验证 身份证号码 合法性 兼容 (15位 和 18位身份证号码)
- 身份证号码验证(JS, 支持15和18位身份证)
- Jquery 对 身份证号码的验证 (15/18位)
- Jquery 对 身份证号码的验证 (15/18位)
- JS练手:18位身份证号码验证
- 18位身份证号码验证算法代码
- 笑话(zhuan)
- C#的引用类型
- 如何更改sql server表的所有者
- 20050913
- 说说SWT(一)——SWT简介
- 身份证号码验证兼15位转18位程序(javascript版)
- 12条职场缺陷
- IE右键菜单
- 怎么用sql修改表名
- CreateThread,_beginthread,_beginthreadx的区别
- 需要自律
- SWT中的布局类
- Win2003下Asp配置技巧
- 20050914