当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript 出生日期和身份证判断大全

Javascript
解决FLASH需要点击激活的代码
取得一定长度的内容,处理中文
写了几个类,希望对大家有用。
Javascript MD4
Code:findPosX 和 findPosY
关于base64加密/解密
Javascript SHA-1:Secure Hash Algorithm
关于arguments,callee,caller等的测试
URI、URL和URN之间的区别与联系
firefox中JS读取XML文件
FCK调用方法..
在 IE 中调用 javascript 打开 Excel 表
网页设计常用的一些技巧
优化JavaScript脚本的性能的几个注意事项
JS暴虐查找法
另类网页中添加运行效果
在window.setTimeout方法中传送对象
js版本A*寻路算法
用js重建星际争霸
在table中插入多行,能使用与insertAdjacentHTML相似的功能吗?

Javascript 中的 javascript 出生日期和身份证判断大全


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 258 ::
收藏到网摘: n/a

对于身份证和出生年月的判断都包括了,非常全。出生日期不能为空,如果出生日期不为空,出生日期必须是8位;如果身份证号是18位或15位必须和出生日期相匹配;如果是军官证号必须首字符是汉字! if(document.form1.csrq.value==""){
alert("请填写出生日期!");
document.form1.csrq.focus();
return false;
}
if(document.form1.csrq.value==""){
alert("请填写出生日期!");
document.form1.csrq.focus();
return false;
}else{
if(document.form1.csrq.value.length!=8){
alert("出生日期必须为8位!");
document.form1.csrq.focus();
return false;
}
if(document.form1.sfzh.value.length==18){
var sfzh =document.form1.sfzh.value;
if(document.form1.csrq.value!=sfzh.substring(6,14)){
alert("出生日期与身份证号不一致!");
document.form1.csrq.focus();
return false;
}
}
if(document.form1.sfzh.value.length==15){
var sfzh =document.form1.sfzh.value;
if(document.form1.csrq.value!='19'+sfzh.substring(6,12)){
alert("出生日期与身份证号不一致!");
document.form1.csrq.focus();
return false;
}
}
}
if(!isIdCardNo(document.form1.sfzh.value)){
document.form1.sfzh.focus();
return false;
}
function isNN(num){
var badChar ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //大写字母
badChar += "abcdefghijklmnopqrstuvwxyz"; //小写字母
badChar += "0123456789"; //数字
badChar += " "+" ";//半角与全角空格
badChar += "`~!@#$%^&()-_=+]\\|:;\"\\'<,>?/";//特殊符号
var c;
//for(var i=0;i<name.length;i++){//依次判断name中的字符
c=num.charAt(0);//取出num中的第1个字符
if(badChar.indexOf(c) != -1){ //如果当前字符在badChar中找到了匹配字符,说明它不是汉字
return false;
} else{
return true;
}
}
function isIdCardNo(num)
{
// if (isNaN(num)) {alert("输入的不是数字!"); return false;}
var len = num.length, re;
if (len == 15){
re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);
}else if (len == 18){
re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);
}else if (isNN(num)){
return true;
}else {
alert("如果是军官号请输入完整,例如:某军官证号为政字第123456号;如果是身份证号请检测您输入的位数,必须为15位或18位。");
return false;
}
var a = num.match(re);
if (a != null)
{
if (len==15)
{
var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
if (len == 18)
{
var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
if (!B) {alert("输入的身份证号 "+ a[0] +" 里出生日期不对!"); return false;}
}
return true;
}