593
צפיות
צפיות
23
תשובות
תשובות
עבודה עם REGEXP משהו לא מובן…
שלום,
יש לי שאלה בקשר לREGEXP…
שמעו,
אני שולח טופס לעמוד אחר, ואז אני רוצה לבדוק אם השדה NAME נשלח ללא עברית(!).
איך עושים את זה?!
אני הצלחתי לעשות רק דבר כזה…
IdOfTheForum = Request.QueryString("id") ' מספר הפורום
Dim regEx
Set regEx = New RegExp
regEx.Global = True
regEx.Pattern = "[^0-9]"
IdOfTheForum2 = regEx.Replace(IdOfTheForum, "")
Set oRegExp = Nothing
if NOT IdOfTheForum2 = IdOfTheForum then
Response.Redirect("index.asp")
Response.End
End if
הקוד הזה לא טוב משום שהוא מבטל מספרים!
אני רוצה לבטל עברית..שהיה כל דבר אחר, חוץ מעברית…
גם אם התקבל תוו אחד בעברית אז שיבטל אותו..
תודה מראש לעוזרים!
23 תשובות
אז תחליף
את זה:
egEx.Pattern = "[^0-9]"
czv
egEx.Pattern = "[^א-ת]"
*czv=בזה
שני דברים:
1. אתה בכלל בדקת מספרים…
2. השימוש ב replace מיותר ובזבזני במקרה הזה.
נסה את זה:
Function xyz(str)
Set oRX = New RegExp
oRX.Pattern = "^[^א-ת]+$"
xyz = oRX.Test(str)
Set oRX = Nothing
End Function
ולפעמים יהיה יותר יעיל
לבדוק את זה על דרך השלילה.
ניר יש לך טעות גדולה!!!
שיים לב מה ביקשתי..
אמרתי "שאני לא רוצה עברית בכלל…
אתה הצעתי לי להחליף בקוד את החלק של המספר באותוית..אבל זו טעות! כי אז הוא רק יקבל עברית ולא אנגלית או סימנים מיוחדים…
ואוריקס..אני לא הצלחתי (ולא הבנתי) את הקוד שלך…
שטויות
הוא לא הציע לך להחליף את המספרים באותיות, הוא רק נתן לך את התבנית.
אני נתתי לך פונקציה, אם אתה לא יודע לעבוד איתה אז אתה לא יודע לעבוד עם RegExp ו/או פונקציות, קרא במדריך באתר.
רמז: היא מחזירה true במקרה שאין עברית במחרוזת שהיא מקבלת.
אוקי..קראתי והבנתי את שלך..
אבל אפשר לקבל עזרה על זה?!
אוריקס, הצלחתי עם הקוד שלך..
אך בכל זאת אנמי רוצה לסדר גם את הקוד שניר נתן..
שיים לב לשיפוץ של הקוד:
Dim regEx
Set regEx = New RegExp
regEx.Global = True
regEx.Pattern = "[^א-ת]"
u2 = regEx.Replace(u, "")
Set oRegExp = Nothing
if u2 = u then
Response.Redirect("index.asp?log=f2")
Response.End
End if
הקוד עובד חלק..הבעיה היחדה שלו היא שאם אני משלב אנגילת/סימנים/מספרים עם העברית, אז הקוד הזה מחשיב את המחרוזת כלא עברית, ובכך יש "דילוג, על הקוד..
איך ניתן למנוע זאת (ע"י הקוד המצויין הנ"ל) ?
שים שיש בהתחלה "^"
שאומר כל התווים חוץ מהסדרה/ות שכתבתי
בהצלחה
סליחה על הבורות, אבל……………
איפה זה בדיוק "בהתחלה" ?
בהתחלה של התבנית( Pattern )
אממממממממממממ……..
אתה מתכוון לעשות כך:
regEx.Pattern = "[^א-ת]"
כן. כמו שכתבתי
לא עובד ו…..
אם לא שמת לב, מה שאמרת לי לעשות היה בדיוק בקוד המקורי שנתתי בהודעות הקודמות..להזכירך:
Dim regEx
Set regEx = New RegExp
regEx.Global = True
regEx.Pattern = "[^א-ת]"
u2 = regEx.Replace(u, "")
Set oRegExp = Nothing
if u2 = u then
Response.Redirect("index.asp?log=f2")
Response.End
End if
הקיצר, לא עובד כמתוכנן….
נסה ככה:
הדוגמא שבאתי לתת זה מה שאוריקס כתב בלי לשים לב
ואני לא מוצא שום הבדל בין מה שנתתי לך קודם למה שכתבת אחר כך
אולי תועיל לומר לי מה שונה ?
בכל מקרה מומלץ ללכת לפי מה שאוריקס נתן כי זה הוא הנכון
יש מאמר על Function באתר הזה?!
ברור שקיימים מדריכים כאלו,
פונקציה זה חלק מובנה בכל הטכנולוגיות (או ברובן).
ב , ב .
נתתי לך שתי מדריכים,
ותבחר מה מתאים לך (תלוי בשפת הסקריפט שאתה עובד איתה).
כבר נתתי לך הסבר על זה
https://www.webmaster.org.il/forums/Message.asp?Id=24443
יש אפשרות להריץ לולאה על אותיות??
כלומר,
אני רוצה ליצור לולאה שתוציא לי אותיות מהאות א' ועד ת'.
האם יש אפשרות כזו בלולאה? אם כן תראו דוגמה…
ואם לא אז איך כן (אם בכלל) ?
ככה:
for i=asc("א") to asc("ת")
response.write i & " – " & chr(i) & "<br>"
next
אוףףףףףףף השרת נפל..אני אבדוק מחר..
לילה טוב לכל חברי הפורם