JS嚴格校驗身份證號
以下是根據身份證號碼編碼規則,使用JS對其進行有效性驗證程式碼
<script type="text/javascript"> var Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ]; // 加權因子 var ValideCode = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]; // 身份證驗證位值.10代表X function IdCardValidate(idCard) { idCard = trim(idCard.replace(/ /g, "")); //去掉字串頭尾空格 if (idCard.length == 15) { return isValidityBrithBy15IdCard(idCard); //進行15位身份證的驗證 } else if (idCard.length == 18) { var a_idCard = idCard.split(""); // 得到身份證陣列 if(isValidityBrithBy18IdCard(idCard)&&isTrueValidateCodeBy18IdCard(a_idCard)){ //進行18位身份證的基本驗證和第18位的驗證 return true; }else { return false; } } else { return false; } } /** * 判斷身份證號碼為18位時最後的驗證位是否正確 * @param a_idCard 身份證號碼陣列 * @return */ function isTrueValidateCodeBy18IdCard(a_idCard) { var sum = 0; // 宣告加權求和變數 if (a_idCard[17].toLowerCase() == 'x') { a_idCard[17] = 10; // 將最後位為x的驗證碼替換為10方便後續操作 } for ( var i = 0; i < 17; i++) { sum += Wi[i] * a_idCard[i]; // 加權求和 } valCodePosition = sum % 11; // 得到驗證碼所位置 if (a_idCard[17] == ValideCode[valCodePosition]) { return true; } else { return false; } } /** * 驗證18位數身份證號碼中的生日是否是有效生日 * @param idCard 18位書身份證字串 * @return */ function isValidityBrithBy18IdCard(idCard18){ var year = idCard18.substring(6,10); var month = idCard18.substring(10,12); var day = idCard18.substring(12,14); var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day)); // 這裡用getFullYear()獲取年份,避免千年蟲問題 if(temp_date.getFullYear()!=parseFloat(year) ||temp_date.getMonth()!=parseFloat(month)-1 ||temp_date.getDate()!=parseFloat(day)){ return false; }else{ return true; } } /** * 驗證15位數身份證號碼中的生日是否是有效生日 * @param idCard15 15位書身份證字串 * @return */ function isValidityBrithBy15IdCard(idCard15){ var year = idCard15.substring(6,8); var month = idCard15.substring(8,10); var day = idCard15.substring(10,12); var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day)); // 對於老身份證中的你年齡則不需考慮千年蟲問題而使用getYear()方法 if(temp_date.getYear()!=parseFloat(year) ||temp_date.getMonth()!=parseFloat(month)-1 ||temp_date.getDate()!=parseFloat(day)){ return false; }else{ return true; } } //去掉字串頭尾空格 function trim(str) { return str.replace(/(^\s*)|(\s*$)/g, ""); } </script>
線上演示 ←不信你試試
相關推薦
JS嚴格校驗身份證號
以下是根據身份證號碼編碼規則,使用JS對其進行有效性驗證程式碼<script type="text/javascript"> var Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ];
js 校驗身份證號
根據地區編碼、身份證格式、18位身份證需要驗證最後一位校驗位 //校驗身份證 function IdentityCodeValid(code) { var city = { 11: "北京", 12: "天津",
正則表示式校驗身份證號
最近在看正則表示式的一些東西,突然想起之前寫的一個關於身份證號碼校驗的小程式。當時寫身份證的校驗的時候,沒有考慮到輸入格式的校驗。程式的健壯性很差,現在我就用正則表示式來做身份證格式校驗,體驗一下正則表示式的奇妙用法。 正則表示式是對字串操作的一種邏輯公式,就
18位身份證號藏了什麼玄機?用js教你校驗身份證
大家好,想必各位程式猿已經有所發現,而相應地,在日常的開發任務需求了很多跟涉及到使用者的都幾乎需
JS校驗銀行卡號、輸入卡號時放大效果
比較 left for 取出 abs focusout htm length rep 一、(校驗格式) function CheckBankNo(t_bankno) { var bankno = $.trim(t_bankno); if(bankno == ""
JS校驗身份證號碼
function isIdCardNo(num) { num = num.toUpperCase(); //身份證號碼為15位或者18位,15位時全為數字,18位前17位為數字,最後一位是校驗位,可能為數字或字元X。
JS校驗身份證號碼(15位和18位)
//檢查生日是否正確 checkBirthday = function(card) { var len = card.length; //身份證15位時,次序為省(3位)市(3位)年(2位)月(2位)日(2位)校驗位(3位),皆為數字 if(len == '15') { var re_fifteen = /^
js 校驗身份證號碼是否正確(摘抄整理)
/* 根據〖中華人民共和國國家標準 GB 11643-1999〗中有關公民身份號碼的規定,公民身份號碼是特徵組合碼,由十七位數字本體碼和一位數字校驗碼組成。排列順序從左至右依次為:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。 地址碼錶示編碼物件常住戶口
校驗身份證有效性
blog fun for return 計算 base == arch 特殊 1 /** 2 * 驗證身份證格式有效性 3 * @param type $id_card 4 * @return boolean 5 */ 6 function valid
一個完整校驗身份證
一個完整校驗身份證 /** * 校驗身份證號合法性 */ function checkIdNumberValid(tex){ var tip = '輸入的身份證號有誤,請檢查後重新輸入!'; var num = tex.value; num = num.toUpperCase()
校驗身份證號碼
校驗身份證是否正確,必須是二代身份證,身份證號是18位 /** * 驗證18位身份編碼是否合法 * * @param idCard 身份編碼 * @return 是否合法 */ public static boolean val
extjs/js時間校驗
獲取 時間差 小寫 含義 月份 sunday 一個 ember nbsp //時間秒判斷var re=/^(?:19|20)[0-9][0-9]-(?:(?:0[1-9])|(?:1[0-2]))-(?:(?:[0-2][1-9])|(?:[1-3][0-1])) (?:(
校驗身份證是否正確
package com.gc.action; public class Test { public static void main(String[] args) { String
js的校驗
1、判斷是否為數字(整數、小數) //使用isNaN()函式 //isNaN()的缺點就在於 null、空格以及空串會被按照0來處理 //isNaN: Not a Number function isRealNum(val){ // isNaN()函式 把空串 空格 以及NU
java 校驗身份證
/** * 校驗身份證 * * @param idCard * @return 校驗通過返回true,否則返回false */ public
js資料校驗【自用】
/** * 驗證密碼複雜度(必須包含數字字母) * @param str * @returns true:滿足規則,false:不滿足 */ function validateStr(str){ var reg1 = /^(([0-9]{1,})([a-z]{1
js金額校驗,js正則表示式,包含正負,小數點後兩位
js金額校驗,js正則表示式,包含正負,小數點後兩位,js程式碼如下: function isMoney(s) { //金額 只允許正數 //var exp =
Js`HTML_校驗文字框設定[span顏色字型等]
結合javascript對錶單中表格加操作 具體行為:如果前面複選框使用者選擇yes,那麼在下面一欄的表單後面加上紅色的* 問題圖例: 選擇前 選擇後 一個具體例子 func
jquery-validator.js外掛校驗
首先引入檔案 <script src="jquery.js" type="text/javascript"></script> <script src="jquery.metadata.js" type="text/javascript">
JS實現校驗IP地址,子網掩碼和預設閘道器的關係是否正確
//校驗IP地址,子網掩碼和預設閘道器的關係是否正確。w是預設閘道器,y是子網掩碼,i是IP地址。function checkIp(w,y,i){ var ws = w.split('.'); var ys = y.split('.'); var is