js身份證正則精準校驗

2021-08-14 22:06:46 字數 1901 閱讀 7800

js身份證正則精準校驗

介紹****** yyyy mm dd 375 0     十八位

******    yy mm dd   75 0     十五位

地區: [1-9]\d

年的前兩位: (18|19|([23]\d))            1800-2399

年的後兩位: \d

月份: ((0[1-9])|(10|11|12)) 

天數: (([0-2][1-9])|10|20|30|31)          閏年不能禁止29+

三位順序碼: \d

兩位順序碼: \d

校驗碼: [0-9xx]

正規表示式:

十八位: ^[1-9]\d(18|19|([23]\d))\d((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d[0-9xx]$

十五位: ^[1-9]\d\d((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d$

總:(^[1-9]\d(18|19|([23]\d))\d((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d[0-9xx]$)|(^[1-9]\d\d((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d$)

用法:

var idcard="61011819650205423"

if (!(/(^[1-9]\d(18|19|([23]\d))\d((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d[0-9xx]$)|(^[1-9]\d\d((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d$)/.test()))

18位身份證特別精準驗證:

function testid(id) (([1][9]\d)|([2]\d))(([0][1-9])|([1][0-2]))(([0][1-9])|([1-2][0-9])|([3][0-1]))\d[0-9xx]$/;

//號碼規則校驗

if(!format.test(id))

//區位碼校驗

//出生年月日校驗 前正則限制起始年份為1900;

var year = id.substr(6,4),//身份證年

month = id.substr(10,2),//身份證月

date = id.substr(12,2),//身份證日

time = date.parse(month+'-'+date+'-'+year),//身份證日期時間戳date

now_time = date.parse(new date()),//當前時間戳

dates = (new date(year,month,0)).getdate();//身份證當月天數

if(time>now_time||date>dates)

//校驗碼判斷

var c = new array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2); //係數

var b = new array('1','0','x','9','8','7','6','5','4','3','2'); //校驗碼對照表

var id_array = id.split("");

var sum = 0;

for(var k=0;k<17;k++)

if(id_array[17].touppercase() != b[sum%11].touppercase())

return true

}

驗證:

testid("610112199512033516")

身份證錯誤返回:false

js校驗身份證

begin 校驗身份證 function checkidcard formname,inputname,itemname var area alert area parseint idcard.substr 0,2 var y,jym var s,m var idcard array new arr...

JS 身份證校驗函式

function checkid iccid id iccid var id iccid,y,jym var s,m var id iccid array new array id iccid array id iccid.split 地區檢驗 if area parseint id iccid.s...

JS身份證的校驗

function iscardno idcard 0 d 1 0 2 0 1 2 d 3 0 1 d 1 9 d 1 9 d 0 d 1 0 2 0 1 2 d 3 0 1 d d xx 如果通過該驗證,說明身份證格式正確,但準確性還需計算 if regidcard.test idcard var ...