国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

javascript實(shí)現(xiàn)驗(yàn)證身份證號(hào)的有效性并提示

2019-11-20 12:34:35
字體:
供稿:網(wǎng)友

javascript實(shí)現(xiàn)驗(yàn)證身份證號(hào)的有效性并提示

function nunber(allowancePersonValue){  if(allowancePersonValue=="身份證號(hào)"){  $("#span_username").show();  $("#span_username").html("身份證號(hào)不能為空");  return false;  }  //校驗(yàn)長(zhǎng)度,類型  else if(isCardNo(allowancePersonValue) === false)  { $("#span_username").show();  $("#span_username").html("您輸入的身份證號(hào)碼不正確,請(qǐng)重新輸入");  return false;  }  //檢查省份  else if(checkProvince(allowancePersonValue) === false)  {  $("#span_username").show();  $("#span_username").html("您輸入的身份證號(hào)碼不正確,請(qǐng)重新輸入");  return false;  }  //校驗(yàn)生日  else if(checkBirthday(allowancePersonValue) === false)  {  $("#span_username").show();  $("#span_username").html("您輸入的身份證號(hào)碼生日不正確,請(qǐng)重新輸入");  return false;  }  //檢驗(yàn)位的檢測(cè)  else if(checkParity(allowancePersonValue) === false)  {  $("#span_username").show();  $("#span_username").html("您的身份證校驗(yàn)位不正確,請(qǐng)重新輸入");  return false;  }else{  $("#span_username").hide();  return true;  }  }  //身份證省的編碼 var vcity={ 11:"北京",12:"天津",13:"河北",14:"山西",15:"內(nèi)蒙古",     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:"臺(tái)灣",81:"香港",82:"澳門",91:"國(guó)外"     };  //檢查號(hào)碼是否符合規(guī)范,包括長(zhǎng)度,類型 function isCardNo(card){  //身份證號(hào)碼為15位或者18位,15位時(shí)全為數(shù)字,18位前17位為數(shù)字,最后一位是校驗(yàn)位,可能為數(shù)字或字符X  var reg = /(^/d{15}$)|(^/d{17}(/d|X)$)/;  if(reg.test(card) === false){  //alert("demo");  return false;  }  return true; }  //取身份證前兩位,校驗(yàn)省份 function checkProvince(card){  var province = card.substr(0,2);  if(vcity[province] == undefined){  return false;  }  return true; }  //檢查生日是否正確 function checkBirthday(card){  var len = card.length;  //身份證15位時(shí),次序?yàn)槭。?位)市(3位)年(2位)月(2位)日(2位)校驗(yàn)位(3位),皆為數(shù)字  if(len == '15'){    var re_fifteen = /^(/d{6})(/d{2})(/d{2})(/d{2})(/d{3})$/;    var arr_data = card.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位時(shí),次序?yàn)槭。?位)市(3位)年(4位)月(2位)日(2位)校驗(yàn)位(4位),校驗(yàn)位末尾可能為X  if(len == '18'){    var re_eighteen = /^(/d{6})(/d{4})(/d{2})(/d{2})(/d{3})([0-9]|X)$/;    var arr_data = card.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; }  //校驗(yàn)日期 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; }  //校驗(yàn)位的檢測(cè) function checkParity(card){  //15位轉(zhuǎn)18位  card = changeFivteenToEighteen(card);  var len = card.length;  if(len == '18'){    var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);    var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');    var cardTemp = 0, i, valnum;    for(i = 0; i < 17; i ++)    {      cardTemp += card.substr(i, 1) * arrInt[i];    }    valnum = arrCh[cardTemp % 11];    if (valnum == card.substr(17, 1))    {      return true;    }    return false;  }  return false; }  //15位轉(zhuǎn)18位身份證號(hào) function changeFivteenToEighteen(card){  if(card.length == '15')  {    var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);    var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');    var cardTemp = 0, i;     card = card.substr(0, 6) + '19' + card.substr(6, card.length - 6);    for(i = 0; i < 17; i ++)    {      cardTemp += card.substr(i, 1) * arrInt[i];    }    card += arrCh[cardTemp % 11];    return card;  }  return card; } 

使用方法:

<input type="text" class="reg_txt" value="身份證號(hào)" titles="請(qǐng)輸入您的身份證號(hào)!" name="userid" id="username" maxlength="40" onfocus="if(this.value=='身份證號(hào)'){this.value='';}" onblur="if(this.value==''){this.value='身份證號(hào)';}nunber(this.value);" style="border: 1px solid red;"><br> <span class="c_red" id="span_username"></span> 

效果為輸入身份證號(hào),焦掉移開后自動(dòng)驗(yàn)證,并返回信息!

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 铜山县| 嫩江县| 随州市| 洛浦县| 玛多县| 海口市| 荥经县| 郧西县| 天等县| 凤山县| 罗平县| 新津县| 舟曲县| 资兴市| 宣武区| 千阳县| 凤冈县| 张家港市| 阳新县| 平南县| 林甸县| 普安县| 鸡泽县| 寿宁县| 蒙自县| 左贡县| 吉林省| 天台县| 辽宁省| 烟台市| 台北市| 金阳县| 新源县| 永吉县| 延吉市| 和政县| 安丘市| 马公市| 平谷区| 平顺县| 定州市|