ולידציה לתעודת זהות ישראלית בC#

שלום חברים,

לאחרונה הייתי צריך לעשות ולידציה למספר תעודת זהות ישראלית.
הולידציה היא בטופס סליקת כרטיס אשראי ספציפית אבל זה לא משנה כלל לפונקציה :-)

הפונקציה בודקת תעודת זהות של 9 ספרות בלבד, במידה ומישהו כתב מספר עם 8 ספרות הולידציה לא תעבוד.
גם לא ניתן להסיק בוודאות שהמספר הראשון הוא 0 ולכן צריכה להיות ולידציה ראשונית לפני שאתם מגיעים לצד שרת. (9 ספרות בלבד)

תיהנו

   1: public static bool validateID(string idNumberString)

   2: {

   3:     if (idNumberString.Length < 9)

   4:         return false;

   5:

   6:     int int1 = Convert.ToInt32(idNumberString.Substring(0, 1)) * 1;

   7:     int int2 = Convert.ToInt32(idNumberString.Substring(1, 1)) * 2;

   8:     int int3 = Convert.ToInt32(idNumberString.Substring(2, 1)) * 1;

   9:     int int4 = Convert.ToInt32(idNumberString.Substring(3, 1)) * 2;

  10:     int int5 = Convert.ToInt32(idNumberString.Substring(4, 1)) * 1;

  11:     int int6 = Convert.ToInt32(idNumberString.Substring(5, 1)) * 2;

  12:     int int7 = Convert.ToInt32(idNumberString.Substring(6, 1)) * 1;

  13:     int int8 = Convert.ToInt32(idNumberString.Substring(7, 1)) * 2;

  14:     int int9 = Convert.ToInt32(idNumberString.Substring(8, 1)) * 1;

  15:

  16:     if (int1 > 9) int1 = (int1 % 10) + 1;

  17:     if (int2 > 9) int2 = (int2 % 10) + 1;

  18:     if (int3 > 9) int3 = (int3 % 10) + 1;

  19:     if (int4 > 9) int4 = (int4 % 10) + 1;

  20:     if (int5 > 9) int5 = (int5 % 10) + 1;

  21:     if (int6 > 9) int6 = (int6 % 10) + 1;

  22:     if (int7 > 9) int7 = (int7 % 10) + 1;

  23:     if (int8 > 9) int8 = (int8 % 10) + 1;

  24:     if (int9 > 9) int9 = (int9 % 10) + 1;

  25:

  26:     int sumOfAllInts = int1 + int2 + int3 + int4 + int5 + int6 + int7 + int8 + int9;

  27:

  28:     sumOfAllInts = sumOfAllInts % 10;

  29:     if (sumOfAllInts > 0)

  30:         return false;

  31:     else

  32:         return true;

  33: }

הקוד המקורי מאתר ASP תרגמתי אותו לc# והוספתי ולידציה לאורך של 9 תווים בהתחלה.

שיהיה בכיף!

אם אתם משתמשים בקוד שימו איזה תגובה כדי שאני אדע :-)

One thought on “ולידציה לתעודת זהות ישראלית בC#

  1. כשאפשר, אני מעדיף להמנע מCONVERTים למינהם.
    אני הייתי עושה עוד העמסה שמקבלת long.
    :-)

    תודה על הקוד.

כתיבת תגובה

האימייל לא יוצג באתר. (*) שדות חובה מסומנים

*

תגי HTML מותרים: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>