by @skills-il
אימות מספרי תעודת זהות, ח"פ ומספרי רישום חברות
npx skills-il add skills-il/developer-tools --skill israeli-id-validator| סוג | קידומת | אורך | דוגמה |
|---|---|---|---|
| תעודת זהות | כלשהי | 9 ספרות | 123456782 |
| חברה (בע"מ) | 51 | 9 ספרות | 51-530820-1 |
| עמותה | 58 | 9 ספרות | 58-012345-6 |
| שותפות | 55 | 9 ספרות | 55-012345-6 |
אלגוריתם ספרת הביקורת של מספר זהות ישראלי (חל על כל הסוגים):
def validate_israeli_id(id_number: str) -> bool:
"""Validate Israeli ID number (TZ, company, amuta, etc.)"""
# Remove dashes and spaces, pad to 9 digits
id_str = id_number.replace('-', '').replace(' ', '').zfill(9)
if len(id_str) != 9 or not id_str.isdigit():
return False
total = 0
for i, digit in enumerate(id_str):
val = int(digit) * ((i % 2) + 1) # Multiply by 1 or 2 alternately
if val > 9:
val = val // 10 + val % 10 # Sum digits if > 9
total += val
return total % 10 == 0למספרים תקינים: אישור תקינות, זיהוי סוג לפי קידומת למספרים לא תקינים: דיווח על אי-תקינות, הצגת הבדיקה שנכשלה, הצעת שגיאות נפוצות:
לצורכי פיתוח ובדיקות, ניתן ליצור מספרי זיהוי תקינים:
def generate_test_id(prefix: str = "") -> str:
"""Generate a valid Israeli ID number for testing."""
import random
base = prefix + ''.join([str(random.randint(0, 9)) for _ in range(8 - len(prefix))])
# Calculate check digit
total = 0
for i, digit in enumerate(base):
val = int(digit) * ((i % 2) + 1)
if val > 9:
val = val // 10 + val % 10
total += val
check = (10 - (total % 10)) % 10
return base + str(check)הערה חשובה: מספרים שנוצרו מיועדים לבדיקות בלבד. לעולם אל תשתמשו במספרים אקראיים כזיהוי אמיתי.
המשתמש אומר: "האם 123456782 הוא מספר תעודת זהות תקין?" תוצאה: הרצת האלגוריתם, דיווח תקין/לא תקין עם הסבר.
המשתמש אומר: "אני צריך אימות תעודת זהות ישראלית ב-JavaScript" תוצאה: מתן אלגוריתם מקביל ב-JavaScript.
המשתמש אומר: "אני צריך 10 מספרי חברה תקינים לבדיקה" תוצאה: יצירת 10 מספרים תקינים עם קידומת 51- לבדיקה.
scripts/validate_id.py — מאמת, מזהה, מעצב ומייצר מספרי זיהוי ישראליים (תעודת זהות, חברה, עמותה, שותפות). תומך במצב מפורט המציג חישוב ספרת ביקורת שלב אחר שלב, יצירת מספרי בדיקה באצווה עם בקרת קידומת, וזיהוי סוג מכל מספר. הרצה: python scripts/validate_id.py --helpreferences/id-formats.md — מפרט כל פורמטי מספרי הזיהוי הישראליים כולל תעודת זהות, חברה (קידומת 51), עמותה (קידומת 58), שותפות (קידומת 55), ואגודה שיתופית (קידומת 57) עם רשויות מנפיקות, תבניות פורמט, אלגוריתם ספרת ביקורת מסוג Luhn עם דוגמה מפורטת, ושגיאות אימות נפוצות. עיינו בו בעת מימוש לוגיקת אימות או דיבוג כשלים בספרת ביקורת.סיבה: ספרת הביקורת עוברת אך המספר לא הונפק בפועל פתרון: האלגוריתם מאמת רק את הפורמט, לא את הקיום בפועל. אימות האם מספר הונפק בפועל דורש גישה למערכות רשות המסים או משרד הפנים.
סוכנים נתמכים
ציון אמון
ניתוח אוטומטי: זוהו 1 גורמי סיכון (הרצת סקריפטים). הרשאות: 85/100, טיפול בנתונים: 100/100.
נבדק על ידי: skills-il-sync-v1
by @skills-il
המרה בין תאריכים עבריים ולועזיים בפורמטים שונים
by @skills-il
אימות ועיצוב מספרי טלפון ישראליים בכל הפורמטים
by @skills-il
הקמת חברה, מענקי רשות החדשנות, הסדרי 102 ועוד