判斷是否是正確的身份證號碼

2021-07-14 20:31:32 字數 2160 閱讀 5995

//判斷是否是正確的身份證號碼

+ (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...