הנך נמצא: מדריך מתקדם / שיעור 2 / דף 2
 


המדריך של תאו ל- JavaScript
 


דפים בשיעור זה:
1: המדריך המתקדם
2: טיפול מיוחד במחרוזות
3: substring
4: מתודת split
5: מערכים אסוציאטיבים
6: דוג' למערך אסוציאטיבי
7: cookies – היכרות
8: עוד אודות cookies
9: קריאת cookies - א'
10: קריאת cookies - ב'
11: קריאה וכתיבה
12: עוד אודות cookies
13: cookie - path/domain
14: סיכום שיעור 2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

שיעור 2

דף 2: טיפול מיוחד במחרוזות

אתה בוודאי תוהה מדוע עליך ללמוד על טיפול במחרוזות, לפני שתקפוץ לעולם ה- cookies המשעשע? ובכן, מסתבר ש- cookies הן מחרוזות. על מנת לשמור את המידע אודות המבקר, ראשית עליך לבנות מחרוזת cookies מיוחדת. ואז, על מנת לקרוא את המידע כשהמשתמש ניגש שוב לאתרך, עליך לפענח את מחרוזת ה- cookies. על מנת ליצור ולפענח מחרוזות, עליך להכיר את אופן הטיפול בספריית המחרוזות של JavaScript.

כבר עכשיו, אתה אמור להכיר היטב מחרוזת, כיוון שעסקנו בהן רבות עד כה, אבל לצורך רענון בלבד, תוכל להביט בשיעור 2 - דף 4, על מנת שתזכר כיצד להפוך מחרוזת רגילה למודגשת:

var normal_monkey = "I am a monkey!<br>";
document.writeln("Normal monkey " + normal_monkey);
var bold_monkey = normal_monkey.bold();
document.writeln("Bold monkey " + bold_monkey);

ההצהרה:

var bold_monkey = normal_monkey.bold();

מקבילה להצהרה:

var bold_monkey = "<b>" + normal_monkey + "</b>";

הגירסא הראשונה, פשוט נראית נקייה יותר. אחת מהמתודות הרבות שניתן להפעיל על מחרוזות היא הדגשה, שהיא קצת מטופשת. קצת פחות מטופשות הן המתודות: indexOf, charAt, substring ו- split, שלמעשה חודרות אל ליבן של המחרוזות, ורואות ממה הן מורכבות. הבא נביט ב- indexOf ראשית.

indexOf

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

var the_word = "monkey";

נתחיל עם המילה "monkey" כמחרוזת.

var location_of_m = the_word.indexOf("m");

מיקום האות 'm' יהיה "0" – כיוון שהתו הראשון במחרוזת הוא המבוקש, וזהו מיקומו.

var location_of_o = the_word.indexOf("o");

מיקום האות 'o' יהיה "1".

var location_of_key = the_word.indexOf("key");

מיקום התת-מחרוזת "key" יהיה "3", כיוון שתת המחרוזת "key" מתחילה בתו 'k', שמיקומו במחרוזת המקורית הוא 3.

var location_of_y = the_word.indexOf("y");

מיקום האות 'y' הוא 5.

var cheeky = the_word.indexOf("q");

הפעם נקבל את הערך "-1" מכוון שהאות 'q' לא מופיעה במחרוזת "monkey".

דוגמא קצת יותר אמיתית לשימוש ב- indexOf היא:

var the_email = prompt("What's your email address?", "");
var the_at_is_at = the_email.indexOf("@");
if (the_at_is_at == -1)
{
  alert("You loser, email addresses must have @ signs in them.");
}

פיסת הקוד הזו, מבקשת מהמשתמש להקליד את כתובת ה- email שלו, ואז בודקת אם הכתובת שהקיש היא חוקית. אם הכתובת אינה מכילה את התו '@' אזי היא ודאי אינה תקינה. המתודה indexOf מחפשת את התו '@' במחרוזת הנתונה.

charAt

המתודה charAt מחזירה את התו הספציפי שנמצא במקוס מסוים במחרוזת. הנה היא בפעולה:

var the_word = "monkey";
var the_first_letter = the_word.charAt(0);
var the_second_letter = the_word.charAt(1);
var the_last_letter = the_word.charAt(the_word.length-1);

לאחר הרצת הקוד, the_first_letter = 'm', the_second_letter = 'o' ו- the_last_letter = 'y'. שים לב, כי ביכולתך לברר כמה תווים יש במחרוזת באמצעות שימוש במאפיין length של המחרוזת. במקרה זה the_word היא "monkey", ועל כן the_word.length הוא '6'. אל תשכח שהתו הראשון במחרוזת הוא במיקום 0 ולכן התו האחרון יהיה במקום length-1 (ובמקרה זה: 5). זו הסיבה שבשורה האחרונה מבקשים את התו במקום ה- "length-1".

לפני שנעבור ל- substring ו- split הבא נתרגל את charAt וכן את indexOf.

תרגיל מחרוזות 1

משימתך היא לכתוב קוד שיבדוק האם התו האחרון במחרוזת הוא אחת מאותיות אהוי (a,e,i,o,u) או עיצור. ביכולתך לעשות זאת בצורה חכמה תוך שימוש ב- indexOf וב- charAt. כמובן, שתוכל לבצע זאת באופן הרבה פחות חכם בלי לעשות שימוש ב- indexOf, אבל זכור: הקוף החכם זוכה בבננה זהובה.

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

חזור לתחילת הדף

לדף הבא «--

 
       
       
   
 
 

עמוד ראשי
מדריך בסיסי
מדריך מתקדם
החלפת תמונות
גניבת קוד
מפת האתר