שלום.
ניסיתי לעשות וילידציה פשוטה לשדה שם באופן כזה:
function mymodule_user($op, &$edit, &$user_edit, $category = NULL) {
if($op == 'validate') {
if($edit["profile_fname"] != '' && !ereg('^[ת-א-zA-Z]{2,30}$',str_replace(" ","",$edit["profile_fname"]))) {
form_set_error('edit-profile-fname',t('Name should contain letter only'));
}
}
}
המטרה היא לאפשר רק אותיות בעברית ובאנגלית + רווחים אך ללא ספרות וסימנים מיוחדים.
כדי לפשר את זה נאלצתי לקדד את ההדף ב UTF8 (בעזרת notepad)
מאותו רגע התחלתי לקבל את ההודעות שגיאה האלה
warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\greenHouse\sites\all\modules\greenhouse\Green House:1) in C:\xampp\htdocs\greenHouse\includes\common.inc on line 141.
רק כשהחזרתי ל ansi הצלחתי להמשיך לעבוד אך הביטוי הרגולרי של הפך ל
!ereg('^[à-úa-zA-Z]{2,30}$'
השאלה היא בעצם - האם יש למישהו רעיון איך ניתן לבצע אימות נתונים לפי התנאים שציינתיו (אותיות בעברית + רווחים בלבד)
תודה,
פיש.
utf8
אין שום סיבה שקבצי הקוד לא יהיו מקודדים ב UTF8. יש לי תחושה שב notepad האשם.
אם אתה בכל אופן לא יכול לקודד את הקבצים שלך ב utf8, אתה יכול להשתמש בקודים של האותיות עצמם.
לקריאה נוספת:
http://www.joelonsoftware.com/articles/Unicode.html
יפה. אבל עדיין לא הבנתי איך
אם אתה בכל אופן לא יכול לקודד את הקבצים שלך ב utf8, אתה יכול להשתמש בקודים של האותיות עצמם.
תודה על המאמר המחכים. עדיין לא הבנתי איך אני בונה את זה בתוך ביטוי רגולארי ?
אני לא יכול להכניס קודים של תווים ולצפות מהפונקציה
ereg
לבצע את ההמרה בעצמה.
..:| תומר פיש |:..
fatFish - Rich media web development
0523.442853 02.5337643
re: ביטוי רגולרי בעברית
א. ereg לא תומך ביוניקוד. נסה לעבוד עם mb_ereg. הסבר מלא כאן.
ב. כדי להכניס עברית לקבצי דרופל אפשר לדוגמה לעבוד עם notepad++, ובתפריט 'פורמט' לציין 'קודד כ-ANSI' ו-'הצג כ-UTF8'.
אמנון-מאיר לבב - ייעוץ משולב - סוף מעשה באפיון תחילה!
אפיון מיזמי אינטרנט, ליווי פרוייקטים בדרופל וייעוץ רב-תחומי