Use una cadena de caracteres para verificar la validez del número de identificación de 18 dígitos.
Reglas de verificación (principios):
Código:
// 校验 身份证 号 public static bool CheckIDCard18 ( string str) { if (str.Length < 18 ) return false ; string number17 = str.Substring ( 0 , 17 ); patrón de cadena = @ " ^ \ d * $ " ; if (! Regex.IsMatch (número17, patrón)) devuelve falso ; cadena número18 = str.Substring ( 17 ); string check = " 10X98765432 " ; En t[] num = { 7 , 9 , 10 , 5 , 8 , 4 , 2 , 1 , 6 , 3 , 7 , 9 , 10 , 5 , 8 , 4 , 2 }; int suma = 0 ; for ( int i = 0 ; i <number17.Length; i ++ ) { sum + = Convert.ToInt32 (number17 [i] .ToString ()) * num [i]; } suma % = 11 ; if (number18.Equals (check [sum] .ToString (), StringComparison.OrdinalIgnoreCase)) { return true ; } else { return false ; } }