[PHP] בעיה בביטוי רגולרלי - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

[PHP] בעיה בביטוי רגולרלי


evyatar813

Recommended Posts

אהלן...

הייתי צריך לעשות ביטוי רגולרי שיגלה לי שהקלט הוא מספרים בלבד. ניסיתי ככה:

preg_match(#^[0-9]$#, $var)

...

זה נתן true למספרים כמו 1 2 3 4 5 6 7 8 ו- 9 .. אבל ב- 10 11 12 13 וכן הלאה זה פתאום זורק false.. אז בסוף עברתי להשתמש ב- is_numeric אבל עדיין מישהו יכול להסביר לי למה הפרג מאצ' לא עבד לי טוב?! תודה לעוזרים.

קישור לתוכן
שתף באתרים אחרים

הביטוי הרגולרי שלך בנוי כך:

^ - התחלה של המחרוזת

[0-9] - תו אחד בין 0 ל-9

$ - סוף המחרוזת

אתה רוצה שבמחרוזת שלך יהיה תו אחד או יותר בין 0-9.

בשביל זה משתמשים ב-+, כלומר הביטוי שאתה רוצה הוא:

^[0-9]+$

אם היית רוצה להכליל גם מקרה של 0 תווים בין 0-9 (כלומר בפועל מחרוזת ריקה) יכולת להשתמש בסימן * במקום +

זה יעבוד, אבל בשביל לתפוס ספרות בביטויים רגולריים נהוג להשתמש ב- d\

משמע הביטוי המקובל יהיה:

^\d+$

אגב, אם יש לך פונקציה שכבר עושה את זה (is_numeric) כפי שכתבת, עדיף להשתמש בה מאשר בביטוי רגולרי. כפי שנאמר:

Some people, when confronted with a problem, think "I know, I'll use regular expressions."

Now they have two problems.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...