Regex Tester
בודקים ביטוי רגולרי על טקסט, רואים מה תפס — ומקבלים הסבר בעברית לכל חלק בתבנית.
יום/חודש/שנה עם / או . או -, וקבוצות בשם (day, month, year). לא בודק אם התאריך קיים באמת (למשל 31/02).
מה התבנית אומרת
קוד מוכן
🔒 הכול רץ בדפדפן שלכם. הטקסט לבדיקה לא נשלח לשרת ולא נשמר. בלחיצה על "שיתוף" הטקסט נכנס לקישור עצמו (אחרי ה-#, חלק שלא נשלח לשום שרת) — שתפו רק עם מי שאתם סומכים עליו.
מה זה Regex?
ביטוי רגולרי (Regular Expression) הוא תבנית שמתארת טקסט: "שלוש ספרות, מקף, ועוד ארבע ספרות". משתמשים בו כדי לבדוק קלט בטפסים, לחפש ולהחליף בעורכי קוד, ולחלץ מידע מתוך טקסט ארוך.
עברית ו-Regex: המלכודת
ב-JavaScript, \w תופס רק אותיות באנגלית, ספרות וקו תחתון — לא אותיות עבריות. גם \b (גבול מילה) מבוסס עליו, ולכן לא עובד כמצופה עם עברית. הפתרון: [א-ת], או \p{Script=Hebrew} עם הדגל u.
ב-C# וב-Python 3 המצב הפוך: \w כן כולל עברית, ו-\d תופס גם ספרות של שפות אחרות. כדאי לבדוק את התבנית בשפה שבה היא תרוץ.
הדגלים
g— כל ההתאמות, ולא רק הראשונה.i— בלי הבדל בין אותיות גדולות לקטנות.m—^ו-$מתייחסים לתחילת וסוף כל שורה. שימושי לבדיקת רשימה, שורה אחר שורה.s— הנקודה תופסת גם ירידת שורה.u— Unicode מלא: אמוג׳י כתו אחד, ותמיכה ב-\p{…}.
תבנית שתוקעת את הדף
תבניות כמו (a+)+$ עלולות לרוץ זמן אקספוננציאלי על טקסט מסוים (catastrophic backtracking) — וזו גם פרצת אבטחה מוכרת (ReDoS). הבודק עוצר כל בדיקה שנמשכת יותר משנייה ומתריע, כך שהדף לא נתקע.
תעודת זהות
Regex יכול לבדוק רק שיש 9 ספרות. הספרה האחרונה היא ספרת ביקורת שמחושבת מהשאר — ובתבנית "תעודת זהות" הבודק מראה בטבלה גם אם היא תקינה. לבדיקה של מספר בודד, עם הסבר החישוב: בדיקת תעודת זהות.