用正規表示式驗證身份證號
開發工具與關鍵技術:vs mvc
在現在的資訊時代,個人的資訊真假難辨,但身份證號就是唯一的,也正因如此我們的資訊錄入都離不開身份證的使用。有了身份證的廣泛使用,同時驗證身份證號碼的知識也被廣泛應用,而我現在要說的就是用正規表示式驗證身份證號碼。
在這裡我會以乙個包含新增身份證號的資訊內容來作為案例,來簡單說明其原理
首先在已經建好的新增資料的彈出層樣式中獲取身份證號input標籤對應的id
擷取身份證號,判斷是否為空,為空則返回false,
當身份證號為15位數時用switch case語句判斷身份證號其的合法性,
測試出生日期的合法性
if (area[parseint(idcard.substr(0, 2))] == null) return false;
switch (idcard.length) [0-9]((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]katex parse error: expected 'eof', got '}' at position 17: …; }̲ el…/;
}如果身份證號符合正規表示式的驗證則返回true,否則返回false
if (ereg.test(idcard))
//return errors[0];
var res = true;
else
//return errors[2];
var res = false;
return res;
break;
跳出迴圈
因為我們中國的年月是分閏年和平年的,所以當身份證號為18位數時驗證時也會分開驗證,用if else語句判斷擷取的資料除於4等於零,或許擷取的資料除於100等於零和擷取的資料除於4等於零,再用正規表示式判斷閏年出生日期的合法性,else則用平年出生日期的合法性正規表示式判斷。首先是用if else語句來判斷 閏年出生日期的合法性正規表示式,else則為平年出生日期的合法性正規表示式
case 18:
if (parseint(idcard.substr(6, 4)) % 4 == 0 || (parseint(idcard.substr(6, 4)) % 100 == 0 && parseint(idcard.substr(6, 4)) % 4 == 0)) (19|20)[0-9]((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9][0-9xx]katex parse error: expected 'eof', got '}' at position 20: …/ }̲ else
接著再獲取已經通過正規表示式判斷的資料,再將通過下面的方法驗證,獲取其下標為零的陣列加上下標為10的陣列乘7再加上下標為1的數子和下標為11的數字和再乘9,接著加上下標為2的和下標為12的數字乘以10,接下的以此類推,得出s值.
if (ereg.test(idcard))
else
//return errors[2];
res = false;
return res;
break;
default:
res = false;
return res;
break;};}
就這樣子身份證驗證就此完成了, 有不對的地方,請指教,謝謝。
1-9 ↩︎
1-9 ↩︎
正規表示式之身份證號驗證
分析 身份證的號碼結構為 身份證前六位 表示編碼物件常住戶口所在縣 市 旗 區 的行政區劃 身份證第七位到第十四位 表示編碼物件出生的年 月 日,其中年份用四位數字表示,年 月 日之間不用分隔符。例如 1981年05月11日就用19810511表示。身份證第十五位到十七位 為同一位址碼所標識的區域範...
正規表示式 判斷身份證號
判斷身份證是否正確 param value 身份證號 return yes or no bool judgeidcardlegal nsstring value bool judgeidcardlegal nsstring value else 省份 nsarray areasarray 11 12...
正規表示式驗證身份證號合理性
def check id card idcard errors 驗證通過 身份證號碼位數不對 身份證號碼出生日期超出範圍或含有非法字元 身份證號碼校驗錯誤 身份證地區非法 area idcard str idcard idcard idcard.strip idcard list list idca...