במאמר זה, תוכלו ללמוד כיצד לעשות שימוש באותיות רישיות של כל מילה ב- JavaScript. לאחר מכן, אתה הולך להשתמש באותיות הראשונות מכל המילים ממשפט.
הדבר היפה בתכנות הוא שאין פיתרון אוניברסלי אחד שיפתור בעיה. לכן, במאמר זה אתה הולך לראות מספר דרכים לפתרון אותה בעיה.
השתמש באותיות רישיות באות אחת של מילה
ראשית, נתחיל באותיות רישיות באות אחת של מילה אחת. לאחר שתלמד כיצד לעשות זאת, נמשיך לשלב הבא - נעשה זאת על כל מילה מתוך משפט. הנה דוגמה:
const publication = "freeCodeCamp";
ב- JavaScript אנו מתחילים לספור מ- 0. למשל, אם יש לנו מערך, המיקום הראשון הוא 0, ולא 1.
כמו כן, אנו יכולים לגשת לכל אות ממחרוזת באותו אופן שבו אנו ניגשים לאלמנט ממערך. למשל, האות הראשונה מהמילה " freeCodeCamp " נמצאת במיקום 0.
משמעות הדבר היא שנוכל לקבל את האות f מ- freeCodeCamp על ידי ביצוע publication[0]
.
באותו אופן, תוכלו לגשת לאותיות אחרות מהמילה. ניתן להחליף את "0" במספר כלשהו, כל עוד לא תחרוג מאורך המילה. על ידי חריגה מאורך המילה, אני מתכוון לנסות לעשות משהו כמו publication[25
שגורם לשגיאה מכיוון שיש רק שתים עשרה אותיות במילה "freeCodeCamp".
כיצד לנצל את האות הראשונה
עכשיו, כשאנחנו יודעים לגשת לאות ממילה, בואו לנצל אותה באותיות רישיות.
ב- JavaScript יש לנו שיטה שנקראת toUpperCase()
, בה אנו יכולים לקרוא על מיתרים, או מילים. כפי שאנו יכולים לרמוז מהשם, אתה קורא לזה על מחרוזת / מילה, והוא הולך להחזיר את אותו הדבר אלא כאותיות גדולות.
לדוגמה:
const publication = "freeCodeCamp"; publication[0].toUpperCase();
כאשר אתה מריץ את הקוד לעיל, תקבל הון F במקום f. כדי להחזיר את כל המילה, נוכל לעשות זאת:
const publication = "freeCodeCamp"; publication[0].toUpperCase() + publication.substring(1);
כעת הוא משתרך "F" עם "reeCodeCamp", כלומר אנו מקבלים בחזרה את המילה "FreeCodeCamp". זה הכל!
בואו נסכם
כדי להיות בטוח שהדברים ברורים, בואו נסכם את מה שלמדנו עד כה:
- ב- JavaScript הספירה מתחילה מ- 0.
- אנו יכולים לגשת לאות ממחרוזת באותו אופן שבו אנו ניגשים לאלמנט ממערך - למשל
string[index]
. - אל תשתמש באינדקס העולה על אורך המחרוזת (השתמש בשיטת האורך -
string.length
- כדי למצוא את הטווח בו תוכל להשתמש). - השתמש בשיטה המובנית
toUpperCase()
באות שברצונך להפוך לגדול.
השתמש באותיות גדולות באות של מילה ממחרוזת
השלב הבא הוא לקחת משפט ולהשתמש באותיות רישיות בכל מילה מאותו משפט. בואו ניקח את המשפט הבא:
const mySentence = "freeCodeCamp is an awesome resource";
פצל אותו למילים
עלינו להשתמש באותיות רישיות באות אחת מכל מילה מהמשפט freeCodeCamp is an awesome resource
.
הצעד הראשון שאנו עושים הוא לפצל את המשפט למערך מילים. למה? כדי שנוכל לתפעל כל מילה בנפרד. אנו יכולים לעשות זאת באופן הבא:
const mySentence = "freeCodeCamp is an awesome resource"; const words = mySentence.split(" ");
חזר על כל מילה
לאחר שהפעלנו את הקוד הנ"ל, המשתנה words
מוקצה למערך עם כל מילה מהמשפט. המערך הוא כדלקמן ["freeCodeCamp", "is", "an", "awesome", "resource"]
.
const mySentence = "freeCodeCamp is an awesome resource"; const words = mySentence.split(" "); for (let i = 0; i < words.length; i++) { words[i] = words[i][0].toUpperCase() + words[i].substr(1); }
כעת השלב הבא הוא לולאה על מערך המילים ולהשתמש באותיות גדולות באות הראשונה של כל מילה.
בקוד לעיל כל מילה נלקחת בנפרד. ואז הוא מקפיד באותיות רישיות באותיות הראשונות, ובסופו של דבר הוא משרשר את האות הראשונה באותיות רישיות עם שאר המחרוזת.
הצטרפו למילים
מה הקוד הקודם עושה? זה חזר על כל מילה והוא מחליף אותה באותיות גדולות של האות הראשונה + שאר המחרוזת.
אם ניקח את "freeCodeCamp" כדוגמה, זה נראה ככה freeCodeCamp = F + reeCodeCamp
.
אחרי שזה מתגבר על כל המילים, words
המערך הוא ["FreeCodeCamp", "Is", "An", "Awesome", "Resource"]
. עם זאת, יש לנו מערך, לא מחרוזת, וזה לא מה שאנחנו רוצים.
השלב האחרון הוא להצטרף לכל המילים כדי ליצור משפט. אז איך נעשה את זה?
ב- JavaScript יש לנו שיטה שנקראת join
, בה נוכל להחזיר מערך כמחרוזת. השיטה לוקחת מפריד כטיעון. כלומר, אנו מציינים מה להוסיף בין מילים, למשל רווח.
const mySentence = "freeCodeCamp is an awesome resource"; const words = mySentence.split(" "); for (let i = 0; i < words.length; i++) { words[i] = words[i][0].toUpperCase() + words[i].substr(1); } words.join(" ");
בקטע הקוד שלמעלה נוכל לראות את שיטת ההצטרפות בפעולה. אנו קוראים לזה words
במערך, ומציינים את המפריד, שבמקרה שלנו הוא רווח.
לכן, ["FreeCodeCamp", "Is", "An", "Awesome", "Resource"]
הופך להיות FreeCodeCamp Is An Awesome Resource
.
שיטות אחרות
בתכנות, בדרך כלל, ישנן מספר דרכים לפתור את אותה בעיה. אז בואו נראה גישה אחרת.
const mySentence = "freeCodeCamp is an awesome resource"; const words = mySentence.split(" "); words.map((word) => { return word[0].toUpperCase() + word.substring(1); }).join(" ");
מה ההבדל בין הפתרון הנ"ל לפתרון הראשוני? שני הפתרונות דומים מאוד, ההבדל הוא שבפתרון השני אנו משתמשים map
בפונקציה, ואילו בפתרון הראשון השתמשנו ב- for loop
.
בואו נרחיק רחוק יותר, וננסה לעשות קו אחד . היו מודעים! פתרונות של קו אחד אולי נראים מגניבים, אך בעולם האמיתי הם משמשים לעיתים רחוקות מכיוון שמאתגר להבין אותם. קריאות קוד תמיד באה במקום הראשון.
const mySentence = "freeCodeCamp is an awesome resource"; const finalSentence = mySentence.replace(/(^\w{1})|(\s+\w{1})/g, letter => letter.toUpperCase());
הקוד שלעיל משתמש ב- RegEx כדי להפוך את האותיות. ה- RegEx עשוי להיראות מבלבל, אז תן לי להסביר מה קורה:
^
תואם את תחילת המחרוזת.\w
תואם כל תו מילה.{1}
לוקח רק את הדמות הראשונה.- לפיכך,
^\w{1}
תואם את האות הראשונה של המילה. |
works like the booleanOR
. It matches the expression after and before the|
.\s+
matches any amount of whitespace between the words (for example spaces, tabs, or line breaks).
Thus, with one line, we accomplished the same thing we accomplished in the above solutions. If you want to play around with the RegEx and to learn more, you can use this website.
Conclusion
Congratulations, you learnt a new thing today! To recap, in this article, you learnt how to:
- access the characters from a string
- capitalize the first letter of a word
- split a string in an array of words
- join back the words from an array to form a string
- use RegEx to accomplish the same task
If you like what I write, the chances are you would love what I email. Consider subscribing to my mailing list. If you're not a fan of newsletters, we can always keep in touch on Twitter.