【问题标题】:Validating Israeli ID number验证以色列身份证号码
【发布时间】:2021-12-15 08:53:31
【问题描述】:

我正在寻找一种干净有效的方法来验证以色列身份证号码。

它基本上是一个 9 位数字上的 Luhn algorithm 的实现。

注意: 这个问题是针对社区的,因为它还没有发生堆栈溢出。 您可以添加不同编码语言的答案。

【问题讨论】:

    标签: luhn


    【解决方案1】:

    这是在 C# 中实现它的一种有效方法 (link):

    public static bool IsValidIsraeliID(string israeliID)
        {
            if (israeliID.Length != 9)
                return false;
    
            long sum = 0;
    
            for (int i = 0; i < israeliID.Length; i++)
            {
                var digit = israeliID[israeliID.Length - 1 - i] - '0';
                sum += (i % 2 != 0) ? GetDouble(digit) : digit;
            }
    
            return sum % 10 == 0;
    
            int GetDouble(long i)
            {
                switch (i)
                {
                    case 0: return 0;
                    case 1: return 2;
                    case 2: return 4;
                    case 3: return 6;
                    case 4: return 8;
                    case 5: return 1;
                    case 6: return 3;
                    case 7: return 5;
                    case 8: return 7;
                    case 9: return 9;
                    default: return 0;
                }
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2020-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-23
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 2023-03-05
      相关资源
      最近更新 更多