In the user registration page Some requirements are more stringent, the need to verify the identity card is legitimate, through this function strictly this system software, thus filtering to many water passengers. Here's how to achieve this method for you to explain.
Most of the time we are using a set of regular expressions to determine whether the user entered the identity card is legitimate, that in the regular expression of judgment before the composition of the ID number you know how much? Here's how much information is included in an ID number:
1, the structure of the number
The citizenship number is a characteristic combination code, which consists of a 17 digit ontology code and a check code. The order is from left to right: six digit address code, eight digit birth date code, three digit sequential code and one digit parity code.
2, address code (top six digits)
The administrative division code of the county (city, Flag, district) of the resident account of the encoding object is executed according to the GB/T2260 regulations.
3, Birth date code (seventh to 14 digits)
Indicates the year, month, and day of the encoding object's birth, which is executed according to gb/t7408, and the year, month, and day codes are not separated by delimiters.
4. Sequence code (15th to 17 digits)
indicates the sequence number assigned to a person born in the same same address code, the same month and the same day, and the odd distribution of order codes to men, even to females.
5, check code (18th digits)
As a tail check code, is by the number compilation unit according to unify formula calculates, if someone's tail is 0-9, does not appear x, but if tail is 10, then must use the X to replace, because if uses 10 to do tail, then this person's identity card becomes 19 places. X is 10 of the Roman numeral, substituting X for 10, which guarantees that the citizen's identity card conforms to the national standard.
After knowing the meaning of the structure of the ID card, we begin to enter the topic:
1. Define the object of a national area
Var acity={11: "Beijing", 12: "Tianjin", 13: "Hebei", 14: "Shanxi", 15: "Inner Mongolia", 21: "Liaoning", 22: "Jilin", 23: "Heilongjiang", 31: "Shanghai", 32: "Jiangsu", 33: "Zhejiang", 34: "Anhui" , 35: "Fujian", 36: "Jiangxi", 37: "Shandong", 41: "Henan", 42: "Hubei", 43: "Hunan", 44: "Guangdong", 45: "Guangxi", 46: "Hainan", 50: "Chongqing", 51: "Sichuan", 52: "Guizhou", 53: "Yunnan", 54: " Tibet ", 61:" Shaanxi ", 62:" Gansu ", 63:" Qinghai ", 64:" Ningxia ", 65:" Xinjiang ", 71:" Taiwan ", 81:" Hong Kong ", 82:" Macao ", 91:" Foreign "}
2, regular expression judgment
function Iscardid (sId) {
var isum=0;
var info= "";
if (!/^\d{17} (\d|x) $/i.test (sId)) return "The ID card length or format error you entered";
Sid=sid.replace (/x$/i, "a");
if (Acity[parseint (Sid.substr (0,2))]==null) return "illegal in your identity card area";
Sbirthday=sid.substr (6,4) + "-" +number (Sid.substr (10,2)) + "-" +number (Sid.substr (12,2));
var d=new Date (Sbirthday.replace (/-/g, "/"));
if (sbirthday!= (d.getfullyear () + "-" + (D.getmonth () +1) + "-" + d.getdate ()) return "The date of birth on the ID card is illegal";
for (var i = 17;i>=0;i-) Isum + = (Math.pow (2,i)%) * parseint (Sid.charat (17-i), one);
if (isum%11!=1) return "The ID number you entered is illegal";
Acity[parseint (Sid.substr (0,2))]+ ", +sbirthday+", "+ (SID.SUBSTR (16,1)%2?" Male ":" female ")//This can also determine the entry of the ID number of the person sex return
true;
}
The above content analysis is the entire content of this article, the realization method is very simple, mainly understands the individual ID number number represents the meaning, very easy!