溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java中身份*號正則表達(dá)式

發(fā)布時間:2020-05-21 15:19:49 來源:網(wǎng)絡(luò) 閱讀:4178 作者:昊洋教育 欄目:軟件技術(shù)

很多學(xué)員在測試的時候?qū)τ趈ava編寫的程序中身份*號碼的正則表達(dá)式不太清楚,在此專門寫一篇博文說明一下。


首先要明白身份*號碼的編碼規(guī)則,然后根據(jù)編碼規(guī)則去寫正則表達(dá)式:


18位身份*號編碼規(guī)則如下:

第1位和第2位:省,自治區(qū),直轄市代碼(有關(guān)取值可查看代碼表);

第3位和第4位:地級市,盟,自治州代碼(有關(guān)取值可查看代碼表);

第5位和第6位:縣,縣級市,區(qū)代碼(有關(guān)取值可查看代碼表);

第7位到第10位:出生年;

第11位和第12位:出生月;

第13位和第14位:出生日;

第15位到第17位:順序碼,第17位若是男生則為單數(shù),若是女生則為雙數(shù)(大家可以自己驗證一下);

第18位:表示校驗碼,可以是0-9或者X(注意是大寫的);


所以驗證18位身份*號碼的正則表達(dá)式為:

"^[1-9]\\\\d{5}[1-9]\\\\d{3}((0[1-9])||(1[0-2]))((0[1-9])||(1\\\\d)||(2\\\\d)||(3[0-1]))\\\\d{3}([0-9]||X)$"

其中:

1、^表示開始,$表示結(jié)束;

2、前六位:[1-9]第一位是1-9其中一位,后面是0-9隨機(jī)數(shù)5個({5}表示五位數(shù)的意思);

3、年份:[1-9]\\\\d{3}表示年份是1-9開始加0-9隨機(jī)數(shù)三個,例如1994;

4、月份:((0[1-9])||(1[0-2]))表示月份是01-09或者10-12其中的兩位數(shù);

5、日:((0[1-9])||(1\\\\d)||(2\\\\d)||(3[0-1]))表示01-09或者10-19或者20-29或者30-31其中的兩位數(shù);

6、最后四位:\\\\d{3}([0-9]||X)表示3位0-9的隨機(jī)數(shù)加0-9其中一位或者X;


但是以上正則表達(dá)式驗證的身份*號碼只能說是符合×××編碼規(guī)則,不能確定×××是否有效。因為即使以上的正則表達(dá)式仍然無法避免出現(xiàn)2月31日的情況,另外,對于最后一位的校驗碼是根據(jù)具體的公式推算出來的,不是隨機(jī)的。但是對于當(dāng)下的一般項目來說,這個正則表達(dá)式已經(jīng)算是比較嚴(yán)謹(jǐn)?shù)囊粋€了。


補充:15位的身份*號已經(jīng)不再使用,但是對于15位身份*號碼的正則表達(dá)式也進(jìn)行一下補充,供大家參考: 

"^[1-9]\\\\d{7}((0[1-9])||(1[0-2]))((0[1-9])||(1\\\\d)||(2\\\\d)||(3[0-1]))\\\\d{3}$"

說明:15位×××出生年顯示兩位,例如1994年出生,18位×××顯示1994,而15位則顯示94,另外15位×××無校驗碼,所以整體比18位身份*號少了3位。


附-×××號最后一位校驗碼的確定算法為:


1、將身份*號前17位數(shù)分別乘以不同的系數(shù)。從第一位到第十七位的系數(shù)分別為:
7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2;
2、將這17位數(shù)字和系數(shù)相乘的結(jié)果相加,用加出來和除以11,確定余數(shù);
3、余數(shù)只可能有0-1-2-3-4-5-6-7-8-9-10這11個數(shù)字,其分別對應(yīng)的最后一位×××的號碼為1-0-X-9-8-7-6-5-4-3-2。
大家可以親自嘗試測試一下,看一看用自己身份*號的前17位是否可以推導(dǎo)出最后一位檢驗碼。



講師更多課程請訪問:http://edu.51cto.com/lecturer/5811414.html



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI