Validador de código: verifique el número de identificación

ylbtech-Code-Validator: verificar número de identificación

 

1. Volver al principio
1 、
using System; 

namespace Sp.Common 
{ 
    public  class ValidatorHelper 
    { 
        ///  <summary>   
        /// Dirección correspondiente al número en la tarjeta de identificación  
         ///  </ summary>   
        // enum IDAddress  
         // {  
         //     Beijing = 11, Tianjin = 12, Hebei = 13, Shanxi = 14, Mongolia Interior = 15, Liaoning = 21, Jilin = 22, Heilongjiang = 23, Shanghai = 31, Jiangsu = 32, Zhejiang = 33,  
         //     Anhui = 34, Fujian = 35, Jiangxi = 36, Shandong = 37, Henan = 41, Hubei = 42, Hunan = 43, Guangdong = 44, Guangxi = 45, Hainan = 46, Chongqing = 50, Sichuan = 51,  
         //     Guizhou = 52, Yunnan = 53, Tibet = 54, Shaanxi = 61, Gansu = 62, Qinghai = 63, Ningxia = 64, Xinjiang = 65, Taiwán = 71, Hong Kong = 81, Macao = 82, en el extranjero = 91  
        // }   

        ///  <summary>   
        /// Verifique un número de tarjeta de identificación de generación (15 dígitos)  
         /// [número de 15 dígitos; coincida con la dirección de la provincia correspondiente; el cumpleaños puede coincidir correctamente]  
         ///  </ summary>   
        ///  <param name = "input"> cadena a verificar </ param>   
        ///  <returns> si coincide con </  
         return > public  static  bool IsIDCard15 ( input de cadena ) 
        { 
            // verifica si se puede convertir a 15 dígitos Entero   
            largo l = 0 ;
             if (! Long . TryParse (input, out l) || l.ToString (). Length! = 15 ) 
            {
                return  false ; 
            } 
            // Verifique que las provincias coincidan  
             // 1 ~ 6 dígitos son códigos de área, 1, 2 dígitos son códigos de gobiernos provinciales, 3, 4 dígitos son códigos de prefectura y gobiernos municipales, 5. El número de 6 dígitos es el código del gobierno del condado y distrito.  
            dirección de cadena = " 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, " ;
             if (! Address.Contains (input.Remove ( 2 ) + " , " )) 
            { 
                return  false ; 
            } 
            // Verifique que el cumpleaños coincida con la   
            cadena birthdate = input.Substring ( 6 , 6 ) .Insert (4 , " / " ) .Insert ( 2 , " / " ); 
            DateTime dt; 
            if (! DateTime. TryParse (birthdate , out dt)) 
            { 
                return  false ; 
            } 
            return  true ; 
        } 

        ///  <summary>   
        /// Verifique el número de ID de segunda generación (18 dígitos, GB11643-1999 estándar)  
         /// [La longitud es de 18 dígitos; los primeros 17 dígitos son números, y el último dígito (código de verificación) puede ser x mayúscula y minúscula; coincida con la dirección de provincia correspondiente; El cumpleaños puede coincidir correctamente; el código de verificación puede coincidir correctamente]  
         ///  </ summary>   
        ///  <param name = "input"> cadena a verificar </ param>   
        /// <returns> ¿ Coincide con </  
         return > public  static  bool IsIDCard18 ( string input) 
        { 
            // Verifique que se pueda convertir al entero correcto   
            long l = 0 ;
             if (! long . TryParse (input.Remove ( 17 ), out l) || l.ToString (). Longitud! = 17 ||! largo . TryParse (input.Replace ( ' x ' , ' 0 ' ) .Replace ( ' X ' , ' 0 ' ), out l))
            { 
                return  false ; 
            } 
            // Verifique que las provincias coincidan  
             // 1 ~ 6 dígitos son códigos de área, de los cuales 1, 2 dígitos son códigos de gobiernos provinciales, 3, 4 dígitos son códigos de prefectura y gobiernos municipales, 5 , 6 dígitos para códigos gubernamentales del condado y distrito.  
            dirección de cadena = " 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, " ;
             if (! Address.Contains (input.Remove ( 2 ) + " , " )) 
            { 
                return  false ; 
            } 
            // Verifique que el cumpleaños coincida con la   
            cadena birthdate = input.Substring ( 6 , 8) .Insert ( 6 , " / " ) .Insert ( 4 , " / " ); 
            DateTime dt; 
            if (! DateTime. TryParse (fecha de nacimiento, out dt)) 
            { 
                return  false ; 
            } 
            // Verificar verificación de código  
             // escuela Código de verificación:  
             // (1) Fórmula de suma ponderada de código de cuerpo de 17 dígitos   
             // S = Suma (Ai * Wi), i = 0, ..., 16, primera suma de los pesos de los primeros 17 dígitos   
             / / Ai: indica el valor digital del número de identificación en   
             la posición i-ésima // Wi: indica el factor de ponderación en la posición i-ésima   
             //Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2   
             // (2) Calcule el mod   
             // Y = mod (S, 11)   
             // (3) Obtenga el código de verificación correspondiente mediante el mod   
             / / Y: 0 1 2 3 4 5 6 7 8 9 10   
             // Código de verificación: 1 0 X 9 8 7 6 5 4 3 2    
            string [] arrVarifyCode = ( " 1,0, x, 9,8,7, 6,5,4,3,2 " ) .split ( ' ' );
             cadena [] la Wi = ( " 7,9,10,5,8,4,2,1,6,3,7,9, 10,5,8,4,2 " ) .Split ( ' , ' );
             char [] Ai = input.Remove ( 17) .ToCharArray ();
            int suma = 0 ;
            para ( int i = 0 ; i < 17 ; i ++ ) 
            { 
                sum + = int .Parse (Wi [i]) * int .Parse (Ai [i] .ToString ()); 
            } 
            int y = - 1 ; 
            Math.DivRem (sum, 11 , out y);
            if (arrVarifyCode [y]! = input.Substring ( 17 , 1 ) .ToLower ()) 
            { 
                return  false; 
            } 
            return  true ; 
        } 

        ///  <summary>   
        /// Verificar el número de identificación (no distingue entre los números de identificación de primera y segunda generación)  
         ///  </ summary>   
        ///  <param name = "input"> Verificación pendiente String </ param>   
        ///  <returns> ¿ Coincide con </  
         return > public  static  bool IsIDCard ( string input) 
        { 
            if (input.Length == 18 )
                 return IsIDCard18 (input);
             si  if (input.Length == 15 )
                 volverIsIDCard15 (entrada);
            de lo contrario 
                devuelve  falso ; 
        } 

    } 
}
2 、
2. Volver arriba
 
3. Volver al principio
 
4. Volver arriba
 
5. Volver arriba
 
 
6. Volver arriba
 
advertir Autor: ylbtech
Fuente: http://ylbtech.cnblogs.com/
Este artículo pertenece al autor y el blog total del parque, bienvenido a imprimir, pero sin el consentimiento del autor declaró por esta sección debe ser retenida, y dada la conexión original en la posición aparente de la página del artículo, de lo contrario Se reserva el derecho de ejercer responsabilidad legal.

Supongo que te gusta

Origin www.cnblogs.com/storebook/p/12685759.html
Recomendado
Clasificación