`

身份证号码的验证-javascript脚本

阅读更多
用javascript对身份证号码的验证:
//校验身份证
function checkidCard (idCard) {
    //是否为空  
    if(idCard == '')  
    {  
        alert('请输入身份证号,身份证号不能为空');  
        $("#personQueryCondition.zjhm").focus;  
        return false;  
    }  
    //校验长度,类型  
    if(isIdCardNo(idCard) == false)  
    {  
        alert('您输入的身份证号码不正确,请重新输入');  
        $("#personQueryCondition.zjhm").focus;  
        return false;  
    }  
    //检查省份  
    if(checkProvince(idCard) == false)  
    {  
        alert('您输入的身份证号码不正确,请重新输入');  
        $("#personQueryCondition.zjhm").focus;  
        return false;  
    }  
    //校验生日  
    if(checkBirthday(idCard) == false)  
    {  
        alert('您输入的身份证号码生日不正确,请重新输入');  
        $("#personQueryCondition.zjhm").focus();  
        return false;  
    }
    return true;
} 

//校验军官证
function checkOfficerCard (officerCard) {
	//是否为空  
    if(officerCard == '')  
    {  
        alert('请输入军官证号,军官证号不能为空');  
        $("#personQueryCondition.zjhm").focus;  
        return false;  
    }  
    return true;
}

//校验港澳通行证
function checkPass(pass) {
	//是否为空  
    if(pass == '')  
    {  
        alert('请输入港澳通行证号,港澳通行证号不能为空');  
        $("#personQueryCondition.zjhm").focus;  
        return false;  
    } 
    return true; 
}

function checkQueryCondition() {
	var zjlx = $("#personQueryConditionZjlx").val();
	var zjhm = $("#personQueryConditionZjhm").val();
	var cxmd = $("#personQueryConditionCxmd").val();
	var xm = $("#personQueryConditionXm").val();
	var cxsy = $("#personQueryConditionCxsy").val();
	if(zjlx == null || zjlx == "") {alert("请选择证件类型"); return false;}
	if(zjhm == null || zjhm == "") {alert("请输入证件号码"); return false;}
	if(cxmd == null || cxmd == "") {alert("请选择查询目的"); return false;}
	if(cxsy == null || cxsy == "") {alert("请输入查询事由");return false;}
	if(xm != null && xm != "") {
		var reg=/[一-龥]/g; 
		if (reg.test(xm)){
			var txt = new RegExp("[\\(,\\),\\!,\\`,\\#,\\$,\\%,\\^,\\&,\\@,\\',\\&,\\\\,\\/,\\|,\\:,\\<,\\>,\"]"); 
			if(txt.test(xm)) {
				alert("姓名格式错误,请重新输入!");
				return false;
			}
			var regDig = /\d/g;
			if(regDig.test(xm)){    
	           	alert("姓名格式错误,请重新输入!");
	           	return false;
	        } 
		} else {
			alert("姓名格式错误,请重新输入!");
			return false;
		}
	}
	
	return true;
}

var vcity = { 11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",  
              21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",  
              33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",  
              42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",  
              51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",  
              63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"  
           	};

//检查号码是否符合规范,包括长度,类型
function isIdCardNo(idCard) {
	//身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X  
    var reg = /(^\d{15}$)|(^\d{17}(\d|X)$)/;  
    if(reg.test(idCard) == false)  
    {  
        return false;  
    }  
    return true;
}

//取身份证前两位,校验省份
function checkProvince(idCard) {
	var province = idCard.substr(0,2);  
    if(vcity[province] == undefined)  
    {  
        return false;  
    }  
    return true;
}

//检查生日是否正确 
function checkBirthday(idCard) {
	var len = idCard.length;  
    //身份证15位时,次序为省(3位)市(3位)年(2位)月(2位)日(2位)校验位(3位),皆为数字  
    if(len == '15')  
    {  
        var re_fifteen = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/;   
        var arr_data = idCard.match(re_fifteen);  
        var year = arr_data[2];  
        var month = arr_data[3];  
        var day = arr_data[4];  
        var birthday = new Date('19'+year+'/'+month+'/'+day);  
        return verifyBirthday('19'+year,month,day,birthday);  
    }  
    //身份证18位时,次序为省(3位)市(3位)年(4位)月(2位)日(2位)校验位(4位),校验位末尾可能为X  
    if(len == '18')  
    {  
        var re_eighteen = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;  
        var arr_data = idCard.match(re_eighteen);  
        var year = arr_data[2];  
        var month = arr_data[3];  
        var day = arr_data[4];  
        var birthday = new Date(year+'/'+month+'/'+day);  
        return verifyBirthday(year,month,day,birthday);  
    }  
    return false;  
}

//校验日期 
function verifyBirthday(year,month,day,birthday) {
	var now = new Date();  
    var now_year = now.getFullYear();  
    //年月日是否合理  
    if(birthday.getFullYear() == year && (birthday.getMonth() + 1) == month && birthday.getDate() == day)  
    {  
        //判断年份的范围(3岁到100岁之间)  
        var time = now_year - year;  
        if(time >= 3 && time <= 100)  
        {  
            return true;  
        }  
        return false;  
    }  
    return false; 



2
1
分享到:
评论

相关推荐

    身份证验证javascript脚本

    身份证验证javascript脚本

    身份证脚本验证

    javascript身份证号码验证-支持18位带x身份证.txt

    javascript身份证验证

    15位或18位身份证javascript验证函数

    JavaScript文本框验证脚本

    *验证表单里的用户输入 * *CreateBy: Black ...* 7、身份证 * 8、固定电话 * 9、移动电话 * 10、传真 * 11、是否真实姓名 * 12、验证是否正确的长日期 * 12、数字字符 * 13、//Emali * 14 分隔符验证

    JAVASCRIPT身份证验证码

    用JavaScript脚本验证身份证真实性的代码

    javascript验证香港身份证的格式或真实性

    本文分享了利用javascript验证香港身份证的格式或真实性的代码,具有很好的参考价值,下面跟着小编一起来看下吧

    personnummer.js:用于验证瑞典个人身份号码的Javascript脚本

    personnummer.js JavaScript脚本(使用TypeScript编写),用于验证和解析瑞典的个人身份证号码。 修复其他程序包无法解决的问题,例如:leap年,协调编号(samordningsnummer),解析和严格验证。 全部放在一个没有...

    javascript实现验证身份证号的有效性并提示

    下面分享的JS脚本是我用过的最完善的身份证号的验证程序了,因为只有真正的身份证号才能被通过,小伙伴们可以试试。直接复制运行。

    js验证数字身份证等大全

    数据验证JS脚本(手机号码、固定电话、邮政编码、数字)

    js-validator:JavaScript 表单验证器

    国民身份证验证器 邮政编码验证器 信用卡验证器 谢巴银行验证器 密码验证器 日期验证器 用法 &lt; head &gt; &lt; script src =" js/validator.js " &gt; &lt;/ script &gt; &lt;/ head &gt; 选项 全局变量 名称 ...

    程序天下:JavaScript实例自学手册

    16.15 身份证的验证 16.16 JavaScript生成验证码 16.17 JavaScript生成验证码(二) 第17章 进度条、滚动条特效处理 17.1 使用符号制作的进度条 17.2 用table制作的进度条 17.3 CSS+JS制作的进度条(一) 17.4 CSS+JS...

    javascript代码常用大全

    6.2 手机号码的验证 6.3 身份证的验证 二、功能类 1、时间与相关控件类 1.1 日历 1.2 时间控件 1.3 万年历 1.4 显示动态显示时钟效果(文本,如OA中时间) 1.5 显示动态显示时钟效果 (图像,...

    《程序天下:JavaScript实例自学手册》光盘源码

    16.15 身份证的验证 16.16 JavaScript生成验证码 16.17 JavaScript生成验证码(二) 第17章 进度条、滚动条特效处理 17.1 使用符号制作的进度条 17.2 用table制作的进度条 17.3 CSS+JS制作的进度条(一) 17.4 CSS+JS...

    常用JS脚本页面判断

    6.2 手机号码的验证 6.3 身份证的验证 二、功能类 1、时间与相关控件类 1.1 日历 1.2 时间控件 1.3 万年历 1.4 显示动态显示时钟效果(文本,如OA中时间) 1.5 显示动态显示时钟效果 (图像,像手表) 2、...

    javascript 常用代码大全

    6.2 手机号码的验证 6.3 身份证的验证 二、功能类 1、时间与相关控件类 1.1 日历 1.2 时间控件 1.3 万年历 1.4 显示动态显示时钟效果(文本,如oa中时间) 1.5 显示动态显示时钟效果 (图像,...

    常用各类验证 正则表达式

    包括电话号码验证,邮政编码验证 ,电子邮件验证,身份证验证,常用数字验证,非法字符验证 ,日期验证。。。 等几乎包括了我们项目当中所有常用验证例子。

    通用JS表单验证类.rar

    通用JS表单验证类_validator实例演示,含有一个说明文档,本验证插件可对表单中常见的电话、字符、邮箱地址、网址、身份证号码、密码、年龄格式、IP格式等特殊的字符格式做出检测判断,避免用户提交到数据库的数据不...

    js脚本大全 js验证大全 压缩包

    1.35 身份证为 15 或 18 位数字或字母 38 1.36 检验输入的时间段,日期格式yyyy-MM-dd 39 1.37 检验输入的时间段,日期格式yyyy-MM-dd 41 1.39 检查EMail格式是否正确.. 47 1.40 电话号码校验(只能为下划线—、()、...

    JavaScript网页特效范例宝典源码

    实例090 验证身份证号码 140 实例091 验证用户名和密码 142 实例092 验证车牌号码 144 实例093 验证网站地址 145 实例094 验证数量和金额 147 实例095 验证字符串是否以指定字符开头 149 实例096 限制输入字符串的...

Global site tag (gtag.js) - Google Analytics