javascript 出生日期和身份证判断大全
程序员文章站
2022-06-10 19:10:02
if(document.form1.csrq.value==""){ alert("请填写出生日期!"); document.form1.csrq.focus(); ret...
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;
}
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;
}
推荐阅读
-
javascript 出生日期和身份证判断大全
-
使用PHP和JavaScript判断请求是否来自微信内浏览器
-
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
-
基于javascript中的typeof和类型判断(详解)
-
JavaScript判断浏览器和hack滚动条的写法
-
vbscript和javascript版的15位, 18位的身份证号码的验证函数.以及根据身份证取省份,生日,性别
-
判断客户端是否具备JavaScript和Cookie功能
-
Javascript select控件操作大全(新增、修改、删除、选中、清空、判断存在等)
-
JavaScript 基于offsetHeight和clientHeight判断是否出现滚动条
-
正则表达式验证身份证号码和邮箱、判断checked选中状态