RegEx

karoitay

New member
RegEx

יש לי את הביטוי הבא
/0(2|3|4|50|52|54|57|8|9)-?[0-9]{7}/​
שמתאים למחרוזת של מספר טלפון בארץ איך אני יכול לשנות את זה כך שיתאים למחרוזת ריקה או למספר טלפון בארץ?
 

DecayCell

New member
די פשוט

עטוף אותו בסוגריים, הוסף | ואפסילון (מחרוזת ריקה).
 

KKnDoIt

New member
אם הוא מתכוון מבחינה מתימטית,

(כפי שלומדים בשפות פורמליות), אני חושב שאתה צודק, אבל אם הוא שואל שאלה מעשית, אני לא בטוח שזה יצליח: מעבר לזה שאני לא מכיר את הסימן אפסילון בהקשר הזה (אצל Parsers של RegExp), כל מחרוזת תתאים לבר"ג (ביטוי רגולרי) של מחרוזת ריקה, כי התוכנה בודקת אם הביטוי נמצא _בתוך_ המחרוזת הנבדקת, לא אם היא מתאימה בדיוק. לכן אם השאלה מעשית, הוא צריך להסביר טוב יותר מה הוא צריך. (תקנו אותי אם אני טועה)
 

vinney

Well-known member
הביטוי לא נכון

נראה לי לפחות
מספרי טלפון לא מתחילים מ0, והביטוי הזה מקבל כאלה או שאני מתלבלב?
 

melatonin

New member
אוקיי, יצאתי טמבל ../images/Emo3.gif

חשבתי שהתכוונת לאפס בהתחלה...
 

Yoava333

New member
ככה:

/(\s||0(2|3|4|50|52|54|57|8|9)[- ]?[0-9]{7})/​
שניתי אותו קצת כך שאפשר גם לעשות רווח בין הקידומת למספר
 

vinney

Well-known member
וזה עדיין לא נכון ../images/Emo13.gif

אם כבר שינית, היית מתקן, הוא עדיין מקבל מספרי טלפון המתחילים ב0 או 1
 

karoitay

New member
אני אנסה שוב

יש לי טופס עם שדה של טלפון וזו הפונקציה שבודקת אותו הקוד| function chkPhone(strPhone){return /0(2|3|4|50|52|54|57|8|9)-?[0-9]{7}/.test(strPhone);} מה שאני רוצה זה שהיא תחזיר true גם אם המחרוזת ריקה.
 
למעלה