פורסם 2013 בנובמבר 812 שנים אהלן...הייתי צריך לעשות ביטוי רגולרי שיגלה לי שהקלט הוא מספרים בלבד. ניסיתי ככה:preg_match(#^[0-9]$#, $var) ...זה נתן true למספרים כמו 1 2 3 4 5 6 7 8 ו- 9 .. אבל ב- 10 11 12 13 וכן הלאה זה פתאום זורק false.. אז בסוף עברתי להשתמש ב- is_numeric אבל עדיין מישהו יכול להסביר לי למה הפרג מאצ' לא עבד לי טוב?! תודה לעוזרים.
פורסם 2013 בנובמבר 812 שנים כי כשאתה עושה [0-9] זה אומר תו אחד שהוא ספרה בין 0 ל-9. אתה צריך לעשות שהביטוי הרגולרי יקבל כל מספר של תווים.
פורסם 2013 בנובמבר 812 שנים הביטוי הרגולרי שלך בנוי כך:^ - התחלה של המחרוזת[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.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.