本文目录一览:
请给一个验证身份证有效性的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)">
</body>
</html>
如果你的重点是验证身份证号码是否正确,你可以到网上找个接口,把号码传过去,整个信息都给你查出来了,何必这么麻烦,你又不是公安局的
我要一段验证身份证的js加上表单的写法
验证身份证的核心函数
function IDCardRegex(v) {
v = SpaceClear(v);
if (v.length != 18) {
return false;
}
var numrex = /[0-9xX]/g;
if (v.replace(numrex, '') != '') {
return false;
}
var address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
var left2 = v.substr(0, 2);
if (address.indexOf(left2) < 0) {
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') {
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) {
return false;
}
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() {
// 把按钮执行事件写在这里
}
上面是手写代码,看LZ对JS不太熟悉,代码就啰嗦了很多。
如何用javascript正则表达式验证身份证号
很简单:
function CheckCardNo(card) {
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if (reg.test(card) === false) {
alert("身份证输入不合法");
return false;
}
}
CheckCardNo('123456778');
js判断身份证号码是否合法有效全国通用
如果要做到全国通用,估计有点问题。毕竟身份证是与个人的信息相互对应的。除非走专业的通道去校验!!如果只是简单判断身份证是否合法有效,可以参考一下身份证号码的构造结构。 首先看看身份证是怎么构造的:
- 地区代码:表示出生地,上图为北京市朝阳区
- 出生日期:不解释,只要合理就好
- 顺序号:最后一位为奇数表示性别男,偶数性别女
- 校验位:这是系统验证比较关键的一位,由前面17位通过公式计算得出,具体公式在此不做讨论,因为其结果为数字0~9或者字母X 这些条件都知道了,就可以开始了:
var CardNumber = ""; // 待验证的身份证号码
var iscard = /^\d{17}([0-9]|X)$/;
if (iscard.test(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;
if ((intStrLen != 15) && (intStrLen != 18)) {
return false;
}
for (i = 0; i < intStrLen; i++) {
varArray[i] = idNumber.charAt(i);
if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
return false;
} else if (i < 17) {
varArray[i] = varArray[i] * factorArr[i];
}
}
if (intStrLen == 18) {
var date8 = idNumber.substring(6, 14);
if (checkDate(date8) == false) {
return false;
}
for (i = 0; i < 17; i++) {
lngProduct = lngProduct + varArray[i];
}
intCheckDigit = 12 - lngProduct % 11;
switch (intCheckDigit) {
case 10:
intCheckDigit = 'X';
break;
case 11:
intCheckDigit = 0;
break;
case 12:
intCheckDigit = 1;
break;
}
if (varArray[17].toUpperCase() != intCheckDigit) {
return false;
}
} else {
var date6 = idNumber.substring(6, 12);
if (checkDate(date6) == false) {
return false;
}
}
return true;
}
function checkDate(date) {
return true;
}
function check() {
var 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 colspan="3">
<table width="100%" border="0">
<tr>
<td valign="top" align="right">证件号码:</td>
<td valign="top">
<input type="text" name="idcard" id="idcard" />
<input type="submit" name="Submit3" value="验证" onClick="check()" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body>
</html>