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

Javascript
javascript下拉框不被选中大类的区别方法
firefox浏览器下javascript 拖动层效果与原理分析代码
javascript 常用关键字列表集合
[原创]后缀就扩展名为js的文件是什么文件
初学JS的的小例子 javascript replace高亮替换
项目实践之javascript技巧
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
javascript数组使用调用方法汇总
JS的递增/递减运算符和带操作的赋值运算符的等价式
JavaScript开发时的五个注意事项
js中将多个语句写成一个语句的两种方法小结
javascript while语句和do while语句的区别分析
带参数的function 的自运行效果代码
看了就知道什么是JSON
js模拟实现Array的sort方法
JavaScript创建命名空间(namespace)的最简实现
文本链接逐个出现的js脚本
我见过最全的个人js加解密功能页面
CLASS_CONFUSION JS混淆 全源码
javascript轻松控制表格列样式的脚本代码

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 140 ::
收藏到网摘: 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;
}