//判斷是否是正確的身份證號碼
+ (bool)validateidcardnumber:(nsstring *)value else
}// 省份**
nsarray
*areasarray =
@[@"11", @"12", @"13", @"14", @"15", @"21", @"22", @"23", @"31", @"32", @"33", @"34", @"35", @"36", @"37", @"41", @"42", @"43", @"44", @"45", @"46", @"50", @"51", @"52", @"53", @"54", @"61", @"62", @"63", @"64", @"65", @"71", @"81", @"82", @"91"];
nsstring *valuestart2 = [value substringtoindex:2];
bool areaflag = no;
for (nsstring *areacode in areasarray)
}if (!areaflag)
nsregularexpression *regularexpression;
nsuinteger numberofmatch;
int year = 0;
switch (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]$"
options:nsregularexpressioncaseinsensitive
error:nil];//
測試出生日期的合法性
}else [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[0-9]|2[0-8]))[0-9]$"
options:nsregularexpressioncaseinsensitive
error:nil];//
測試出生日期的合法性 }
numberofmatch = [regularexpression numberofmatchesinstring:value
options:nsmatchingreportprogress
range:nsmakerange(0, value.length)];
if(numberofmatch > 0) else
case
18:year = [value substringwithrange:nsmakerange(6,4)].intvalue;
if (year % 4 ==0 || (year % 100 ==0 && year % 4 ==0)) 19[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]$"
options:nsregularexpressioncaseinsensitive
error:nil];//
測試出生日期的合法性
}else 19[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[0-9]|2[0-8]))[0-9][0-9xx]$"
options:nsregularexpressioncaseinsensitive
error:nil];//
測試出生日期的合法性 }
numberofmatch = [regularexpression numberofmatchesinstring:value
options:nsmatchingreportprogress
range:nsmakerange(0, value.length)];
if(numberofmatch > 0) else
}else
default:
return
no;}
}
身份證號碼
每乙個人自出生後都會有乙個身份證號碼。根據我國有關部門規定,公民身份號碼是特徵組合碼,由十七位數字本體碼和一位數字校驗碼組成。排列順序從左至右依次為 六位數字位址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。居民身份證是國家法定的證明公民個人身份的有效證件。例如 對於身份證號碼330719...
驗證身份證號碼是否為正確值
今天 2018 04 09 在整理正則表達時,有乙個關於身份證號碼的正則匹配。最簡單的不動腦子的匹配方式為 1 9 d d x 但是這樣很容易偽造乙個身份證號來騙過電腦,於是加強版的正則匹配為 1 9 d 18 19 20 d 0 1 9 10 11 12 0 2 1 9 10 20 30 31 d...
身份證號碼驗證
說明 驗證身份證的有效性 引數 cid 身份證號碼 返回 地方 出生時間 性別 private string checkcidinfo string cid if cid.length 18 char c cid cid.length 1 bool last false if c 0 c 9 c a...