שאלה בJAVA SCRIPT ... לא מצליח להבין למה תנאי לא עובד - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שאלה בJAVA SCRIPT ... לא מצליח להבין למה תנאי לא עובד


shimmi1982

Recommended Posts

זה חלק מקוד שאמור לבדוק אם כתובת מייל שהוזנה היא חוקית. הוא אמור לבדוק קודם כל אם יש שטרודל במקום מעל השני במחרוזת. את זה הוא עושה תקין. אם הוא עבר את הבדיקה הראשונה (הבוליאני על "אמת") הוא ממשיך לבדיקה השניה: לבדוק האם יש נקודה בכל החלק שאחרי השטרודל. את זה הוא עושה. הבעיה היא שאני רוצה שיבדוק לא בכל השטח מחרוזת שאחרי השטרודל אלא מ-תוו אחד אחריהשטרודל ותו אחד לפני הסיום (הרעיון הוא שכתובת אימייל כזו "dsfs@.asd" או שהנקודה תהיה בסוף- יהיו לא חוקיים ויהפכו את הבוליאני לשקר) . כרגע הכל עובד חוץ מהחלק של התנאי האחרון-הוא מתעלם מהפלוס אחד והמינוס אחד, ולא משנה איפה יש נקודה אחרי השטרודל הוא מחזיר לי בוליאני "אמת"....

אני חושב שהבעיה נעוצה בתחביר לא נכון... מישהו יכול לעזור בבקשה????

<script>

check=false

email=new String()

email=prompt ("הזן כתובת אימייל תקינה-אנא אל תנסה לרמות אותנו,אנחנו מצויידים בשיא הטכנולוגיה לבדוק שאתה לא מרמה")

for (i=2; i<=(email.length); i++)

{

if (email.charAt(i)=="@")

{

check=true

}

}

if (check==true)

{

check=false

for (i=((email.indexOf("@"))+1); i<=((email.length)-1); i++)

{

if (email.charAt(i)==".")

{

check=true

}

}

}

if (check==true)

{

alert("כתובת האימייל שהזנת תקינה")

}

else

{

alert("?למה אתה מנסה לעבוד עלינו כשאנחנו סופר מקצועיים בעבודה שלנו")

}

</script>

ניסיתי גם תחביר ללא סוגריים כפי הרשום מטה- כנ"ל לא עובד

for (i=(email.indexOf("@")+1); i<=(email.length-1); i++)

{

if (email.charAt(i)==".")

{

check=true

}

תודה מראש

*עריכה- אופס מצאתי את הטעות לבד תודה, זה צריך להיות +2 ו-מינוס 2 במקום 1.

אפשר לנעול, סורי.:)

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

כמה דברים:

א. כשאתה כותב קוד באתר, תשתמש בטג קוד (כפתור # למעלה). ככה הוא ייראה יותר טוב.

ב. אין צורך להגדיר email = new string, זה מיותר.

ג. מחרוזות מתחילות ממיקום 0, לא 1. הלולאה הראשונה שלך צריכה לרוץ מ-1 (ולא מ-2), ועד i<email.length. שים לב שאם תשים את השטרודל באות השנייה באמת, אז זה לא יעבוד.

ד. הלולאה השנייה בודק שיש נקודה בין התו שאחרי השטרודל לתו האחרון. היא לא בודקת שאין נקודה מיד אחרי השטרודל, או בתו האחרון (וגם הלולאה הזו צריכה לרוץ רק עד "קטן מ" ולא "קטן שווה").

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

ארכיון

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

×
  • צור חדש...