Maison  >  Article  >  développement back-end  >  Exemple d'analyse C# sur la vérification du numéro d'identification (exactitude)

Exemple d'analyse C# sur la vérification du numéro d'identification (exactitude)

黄舟
黄舟original
2017-07-26 15:25:292249parcourir

Cet article présente principalement l'exemple de code C# pour vérifier l'exactitude du numéro de carte d'identité, y compris la vérification du numéro à 18 chiffres et du numéro à 15 chiffres. Les amis dans le besoin peuvent s'y référer

Saw. dans l'espace QQ aujourd'hui Un article sur la méthode de vérification et un exemple de code pour vérifier les numéros de carte d'identité à 18 chiffres en langage C# J'ai pris le temps de l'étudier. Personnellement, je pense que c'est plutôt bien, alors je l'ai écrit pour une utilisation future. !

Numéro à 18 chiffres :


private static bool CheckIDCard18(string Id)
    {
      long n = 0;
      if (long.TryParse(Id.Remove(17), out n) == false || n < Math.Pow(10, 16) || long.TryParse(Id.Replace(&#39;x&#39;, &#39;0&#39;).Replace(&#39;X&#39;, &#39;0&#39;), out n) == false)
      {
        return false;
      }
      string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
      if (address.IndexOf(Id.Remove(2)) == -1)
      {
        return false;
      }
      string birth = Id.Substring(6, 8).Insert(6, "-").Insert(4, "-");
      DateTime time = new DateTime();
      if (DateTime.TryParse(birth, out time) == false)
      {
        return false;
      }
      string[] arrVarifyCode = ("1,0,x,9,8,7,6,5,4,3,2").Split(&#39;,&#39;);
      string[] Wi = ("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2").Split(&#39;,&#39;);
      char[] Ai = Id.Remove(17).ToCharArray();
      int sum = 0;
      for (int i = 0; i < 17; i++)
      {
        sum += int.Parse(Wi[i]) * int.Parse(Ai[i].ToString());
      }
      int y = -1;
      Math.pRem(sum, 11, out y);
      if (arrVarifyCode[y] != Id.Substring(17, 1).ToLower())
      {
        return false;
      }
      return true;//正确
    }

15 chiffres numéro :


private static bool CheckIDCard15(string Id)
    {
      long n = 0;
      if (long.TryParse(Id, out n) == false || n < Math.Pow(10, 14))
      {
        return false;
      }
      string address = "11x22x35x44x53x12x23x36x45x54x13x31x37x46x61x14x32x41x50x62x15x33x42x51x63x21x34x43x52x64x65x71x81x82x91";
      if (address.IndexOf(Id.Remove(2)) == -1)
      {
        return false;
      }
      string birth = Id.Substring(6, 6).Insert(4, "-").Insert(2, "-");
      DateTime time = new DateTime();
      if (DateTime.TryParse(birth, out time) == false)
      {
        return false;
      }
      return true;//正确
    }

Résumé

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn