驗證身份證號碼格式並且得到出生年月和性別

螞蟻小編發表於2018-07-12

身份證號碼是唯一的,並且號碼中包含了大量的個人資訊,比如年齡性別和所在地區住址。

下面分享一段程式碼例項,能夠驗證身份證號碼的格式,並且能夠根據格式得到個人的出生年月和性別資訊。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<script type="text/javascript">
function getIDChar18(id){
  var arr=id.split('');
  var sum=0;
  var vc=[7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
  for(var index = 0; index < 17; index++){
    sum+=vc[index]*parseInt(arr[index]);
  }
  return ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'][sum % 11];
}
function ValidID(id){
  if(/^\d{18}$/.test(id)){
    var c = id.charAt(17), rc = getIDChar18(id);
    if(c == rc) {
      showRst('您輸入的18位身份證號碼正確!<br>生日:' 
      + id.substr(6, 8) 
      + '<br>性別:' 
      + ['女', '男'][parseInt(id.charAt(16)) % 2]);
    }
    else{
      showRst('您輸入的18位身份證號碼檢驗碼錯誤,18位校驗碼應該為' + rc + '!');
    } 
  }
  else showRst('請輸入18位數字的身份證號碼!');
}
function showRst(msg){
  document.getElementById('rst').innerHTML=msg 
}
window.onload=function(){
  var otxt=document.getElementById("txt");
  otxt.onblur=function(){
    ValidID(this.value);
  }
}
</script>
</head>
<body>
<input type="text" id="txt"/>
<div id="rst"></div>
</body>
</html>

當輸入身份證號碼,並且文字框失去焦點之後,能夠實現驗證效果,並且獲取年齡和性別的資訊。

相關文章