本文目录一览:
- 1、请给一个验证身份证有效性的js代码
- 2、我要一段验证身份证的js加上表单的写法
- 3、如何用javascript正则表达式验证身份证号
- 4、js判断身份证号码是否合法有效全国通用
- 5、js身份证验证怎么做
请给一个验证身份证有效性的js代码
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
HTML
HEAD
TITLE New Document /TITLE
META NAME="Generator" CONTENT="EditPlus"
META NAME="Author" CONTENT=""
META NAME="Keywords" CONTENT=""
META NAME="Description" CONTENT=""
/HEAD
SCRIPT LANGUAGE="JavaScript"
!--
function a( e ){
var v15 = /^\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d$/;
var v18 = /^\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d[1-9x]$/
if( e.value.length == 15 ){
if( !e.value.match(v15) ){
alert("15位身份证号码应为数字");
}
}else if( e.value.length == 18 ){
if( !e.value.match(v18) ){
alert("18位身份证号码应为数字,最后一位可为x");
}
}else{
alert("身份证号码应为15或18位");
}
}
//--
/SCRIPT
BODY
INPUT TYPE="text" NAME="" onblur="a(this)"
/form
/BODY
/HTML
如果你的重点是验证身份证号码是否正确,你可以到网上找个接口,把号码传过去,整个信息都给你查出来了,何必这么麻烦,你又不是公安局的
我要一段验证身份证的js加上表单的写法
验证身份证的核心函数
function IDCardRegex(v) {
v = SpaceClear(v);
if (v.length != 18) {
//alert("长度不正确");
return false;
}
var numrex = /[0-9xX]/g;
if (v.replace(numrex, '') != '') {
//alert("字符不正确");
return false;
}
var address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
var left2=v.substr(0,2);
if (address.indexOf(left2) 0) {
//alert("地区信息不正确");
return false;
}
var birth = v.substr(6, 8);
birth = birth.substr(0, 4) + "-" + birth.substr(4, 2) + "-" + birth.substr(6);
var birthday = new Date(birth);
if (birthday.getDate().toString() == 'NaN') {
//alert("生日不正确");
return false;
}
//效验码
var Wistr = "7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2";
var Wis = Wistr.split(',');
var Sums = 0;
var Sum = 0;
var c;
for (var i = 0; i 17; i++) {
c = v.substr(i, 1);
Sum = parseInt(c) * parseInt(Wis[i]);
Sums += Sum;
}
var Y = Sums % 11;
var T = v.substr(17, 1);
if (T == 'X') {
T = 'x';
}
var E = '';
switch (Y) {
case 0:
Y = 1;
break;
case 1:
Y = 0;
break;
default:
Y = 12 - Y;
break;
}
E = Y.toString();
if (Y == 10) {
E = 'x';
}
if (E != T) {
// alert("效验码不正确");
return false;
}
// alert("检查完毕");
return true;
}
调用函数:
var idcardno='*****';
if(!IDCardRegex(idcardno))
{
//alert("身份证号码格式不正确");
}
会返回true或false
页面结合代码示例如下:
input type="text" id="text_idcard" /span id="span_idcard"/span
input type="button" id="btn_ok" value="确定" /
js代码如下 引用jquery
$(function(){
$("#text_idcard").blur(function(){//当输完身份证号码 将鼠标点击其他地方时候触发事件
var idcard=$("#text_idcard").val();
idcard=idcard.replace(/\s+/g,"");
if(IDCardRegex(idcard))
{
$("#span_idcard").text("身份证格式正确");
//验证通过 提示可有可无
}
else
{
//验证未通过
$("#span_idcard").text("身份证格式不正确");
$("#text_idcard").focus();//让焦点重新回到身份证输入框
}
})
$("#btn_ok").click(function(){//按钮提交事件 这个可以写在下面一个函数里
var idcard=$("#text_idcard").val();
idcard=idcard.replace(/\s+/g,"");
if(!IDCardRegex(idcard))
{
//验证未通过
$("#span_idcard").text("身份证格式不正确");
$("#text_idcard").focus();//让焦点重新回到身份证输入框
return false;//阻止按钮向下执行
}
})
})
function btn_send()
{
//----把按钮执行事件写在这里 然后按钮属性加上onclick="return btn_send()"
}
上面是手写代码 看LZ对js不太熟悉代码就啰嗦了很多
如何用javascript正则表达式验证身份证号
很简单
function CheckCardNo(card)
{
// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if(reg.test(card) === false)
{
alert("身份证输入不合法");
return false;
}
}
CheckCardNo('123456778');
js判断身份证号码是否合法有效全国通用
如果要做到全国通用。估计有点问题。毕竟身份证是与个人的信息相互对应的。除非走专业的通道去校验!!如果只是简单判断身份证是否合法有效,可以参考一下身份证号码的构造结构。
首先看看身份证是怎么构造的:
首先:
1)地区代码:表示出生地,上图为北京市朝阳区
2)出生日期:不解释,只要合理就好
3)顺序号:最后一位为奇数表示性别男,偶数性别女
4)校验位:这是系统验证比较关键的一位,由前面17位通过公式计算得出,具体公式在此不做讨论,因为其结果为数字0~9或者字母X
这些条件都知道了。
就可以开始了:
//首先最迟判断身份证号码的位数(18)
var CardNumber="";//待验证的身份证号码
var iscard=/^\d{17}([0-9]|X)$/;
if(iscard.text(CardNumber)){
//验证身份证的"地区代码(前6位数字,这里需要搜集各个地区的代码...)"
if(这里校验地区代码){
if(这里校验出生日期){
//校验出生日期时,会牵扯到日历算法(计算某年的某月有多少天,防止用户随意输入大于31的日期)
//如果判断到这里了,就可以初步确定为"合法有效"的身份证号码了。
//因为“校验位”相对而言较复杂。如果楼主有意思。可以百度找资料。
}
}
}
js身份证验证怎么做
!DOCTYPE html
html
head
meta http-equiv="content-type" content="text/html;charset=gbk" /
/head
body
script type="text/javascript"
//--身份证号码验证-支持新的带x身份证
function isIdCardNo(num)
{
var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
var error;
var varArray = new Array();
var intValue;
var lngProduct = 0;
var intCheckDigit;
var intStrLen = num.length;
var idNumber = num;
// initialize
if ((intStrLen != 15) (intStrLen != 18)) {
//error = "输入身份证号码长度不对!";
//alert(error);
//frmAddUser.txtIDCard.focus();
return false;
}
// check and set value
for(i=0;iintStrLen;i++) {
varArray[i] = idNumber.charAt(i);
if ((varArray[i] '0' || varArray[i] '9') (i != 17)) {
//error = "错误的身份证号码!.";
//alert(error);
//frmAddUser.txtIDCard.focus();
return false;
} else if (i 17) {
varArray[i] = varArray[i]*factorArr[i];
}
}
if (intStrLen == 18) {
//check date
var date8 = idNumber.substring(6,14);
if (checkDate(date8) == false) {
//error = "身份证中日期信息不正确!.";
//alert(error);
return false;
}
// calculate the sum of the products
for(i=0;i17;i++) {
lngProduct = lngProduct + varArray[i];
}
// calculate the check digit
intCheckDigit = 12 - lngProduct % 11;
switch (intCheckDigit) {
case 10:
intCheckDigit = 'X';
break;
case 11:
intCheckDigit = 0;
break;
case 12:
intCheckDigit = 1;
break;
}
// check last digit
if (varArray[17].toUpperCase() != intCheckDigit) {
//error = "身份证效验位错误!...正确为: " + intCheckDigit + ".";
//alert(error);
return false;
}
}
else{ //length is 15
//check date
var date6 = idNumber.substring(6,12);
if (checkDate(date6) == false) {
//alert("身份证日期信息有误!.");
return false;
}
}
//alert ("Correct.");
return true;
}
function checkDate(date)
{
return true;
}
function check()
{
idnum = document.getElementById('idcard').value;
alert(isIdCardNo(idnum));
}
/script
form id="form1" name="form1" method="post" action=""
table align="center" width="60%" border="0"
tr
td /td
td /td
td /td
/tr
tr
td /td
td /td
td /td
/tr
tr
td width="40%" valign="top"div align="right"用户注册/div/td
td width="11%" valign="top" /td
td width="49%" valign="top"a href="#"管理员登录/a/td
/tr
tr
td /td
td /td
td /td
/tr
tr
td colspan="3"table width="100%" border="0"
tr
td valign="top" /td
td valign="top" /td
/tr
tr
td valign="top"div align="right"姓 名:/div/td
td valign="top"label
input type="text" name="textfield" /
/label/td
/tr
tr
td width="421" valign="top" /td
td width="561" valign="top" /td
/tr
tr
td valign="top"div align="right"证件号码:
/div/td
td valign="top"input type="text" name="idcard" id="idcard"/
label
input type="submit" name="Submit3" value="验证" onClick="check()"/
/label/td
/tr
tr
td valign="top" /td
td valign="top" /td
/tr
tr
td valign="top"div align="right"电话号码:/div/td
td valign="top"input type="text" name="textfield22" //td
/tr
tr
td valign="top" /td
td valign="top" /td
/tr
tr
td valign="top" /td
td valign="top" /td
/tr
tr
td valign="top"
div align="right"
input type="submit" name="Submit" value="提交" /
/div/td
td valign="top"label
input type="reset" name="Submit2" value="重置" /
/label/td
/tr
/table/td
/tr
/table
/form
/body
/html