string validation in C sharp

igalep132

New member
string validation in C sharp

שלום, רציתי לדעת איך אני יכול לבדוק האם הקלט שלי הוא string טהור (הכוונה לאותיות ולא לספרות). אני צריך לקבל שם משתמש בtextBox ורוצה לבדוק תקינות קלט תודה מראש
 
לא מכיר פונ' ספציפיות

קודם כל אתה יכול לחפש מה יש בMSDN כל מני string manipulations .. דבר שני אתה יכול לעבור על כל התווים ולבדוק שהם בין a לz
 

igalep132

New member
איך אני בודק שהתווים בין a ל z ?

נניח עשיתי לכולם toLow , ואז אני עובק על כל תו, אבל איך אני בודק בין מה למה הוא ?
 

טרמפיסט

New member
לדעתי

הגדר מערך תווים המכיל את תווי הספרות כל אחת בנפרד בתא בודד. לאחר מכן קרא למתודה IndexOfAny של ה-String שלך. המתודה אמורה למצוא מופעים של כל אחד מתאי המערך (קרי כל ספרה) במחרוזת. אם אין מופעים - קבלת מה שרצית.
 

igalep132

New member
אחרי גלגול ארוך מצאתי משהו

שפותר את הבעיה ללא לעבור על כל התווים
string name = textBoxName.Text; Regex stringValidation = new Regex(@"^[A-Za-z]*$"); if (!stringValidation.IsMatch(name)) errorProvider1.SetError(textBoxName, " The name should be written by letters ONLY"); else errorProvider1.SetError(textBoxName, "");​
 

טרמפיסט

New member
לדעתי זה יוצא יותר ארוך

אני לא מתמצא בבדלי ביצועים בין פעולות רגילות על מחרוזות לבין Regular Expression, אבל נדמה לי שהשיטה שהצעתי לך טובה יותר. אולי לא הובנתי נכון: מגדירים מערך של תווים שאינם רצויים (תווי הספרות, למשל, כפי שבקשת) בשורה אחת ובשורה הבאה בודקים לפי המתודה. הבדיקה באמצעות המתודה היא בדיקה של שורה אחת ללא לולאות (מה שסביר להניח שקורה במהלך היישום שלה), לכן אורך הקוד די דומה לשלך אך אינו עושה שימוש ב-RegEx.
 

igalep132

New member
לדעתי שלי קצר יותר :)

כל התהליך זה 3 שורות בלי להגדיר מערך (שימוש בזיכרון)
 

igalep132

New member
:), עם זה כבר הסתדרתי

יש שאלה למטה יותר (מאתרת משהו) אשמח לקבל עזרה בנושא
 
למעלה