
מהן מחרוזות וכיצד להשתמש בהן בג'אווה סקריפט
מחרוזת היא רצף של תווים המוקפים בתוך זוג גרשיים (מהסוג ' או מהסוג `) או מרכאות כפולות (""). מחרוזות יכולות להכיל אותיות, מספרים, סמלים ורווחים לבנים.
ניתן ליצור מחרוזות באמצעות קריאה לקונסטרקטור של האובייקט String או בצורה ישירה.
דוגמה:
let greeting = "Hello, World!"; // Using string literal
let message = String("Welcome to JavaScript!"); // Using String constructor
שימוש בסיסי במחרוזות בג'אווה סקריפט
שרשור מחרוזות הוא תהליך של חיבור מחרוזות מרובות למחרוזת אחת. ניתן לשרשר מחרוזות באמצעות האופרטור + או באמצעות יצירת מחרוזת אחת שכוללת בתוכה template literal.
template literal זו דרך להציג משתנים שהוגדרו קודם לכן בתוך מחרוזת, באמצעות התבנית ${}.
דוגמה:
let firstName = "John";
let lastName = "Doe";
let fullName = firstName + " " + lastName; // Using +
let fullNameTemplate = `${firstName} ${lastName}`; // Using template literal
ניתן למצוא את אורך המחרוזת באמצעות המאפיין length.
דוגמה:
let message = "Hello, World!";
let messageLength = message.length; // Result: 13
ניתן לגשת לתווים בודדים בתוך מחרוזת באמצעות סימון סוגריים מרובעים והאינדקס שלהם. יש לשים לב שהאינדקס מתחיל מהסיפרה 0 ולא 1.
דוגמה:
let message = "Hello, World!";
let firstCharacter = message[0]; // Result: 'H'
מניפולציות מתקדמות במחרוזות בג'אווה סקריפט
ניתן להמיר מחרוזת לאותיות גדולות או קטנות באמצעות הפונקציות toUpperCase ו-toLowerCase.
דוגמה:
let text = "Hello, World!";
let uppercaseText = text.toUpperCase(); // Result: "HELLO, WORLD!"
let lowercaseText = text.toLowerCase(); // Result: "hello, world!"
ניתן לפצל מחרוזות למערך של מחרוזות משנה באמצעות הפונקציה split וניתן לחבר מערכים למחרוזת בודדת באמצעות הפונקציה join.
דוגמה:
let sentence = "JavaScript is awesome!";
let words = sentence.split(" "); // Result: ["JavaScript", "is", "awesome!"]
let joinedSentence = words.join("-"); // Result: "JavaScript-is-awesome!"
ניתן לחלץ מחרוזת משנה ממחרוזת באמצעות הפונקציה substring או באמצעות הפונקציה slice.
יש הרבה דמיון בין 2 הפונקציות. שתיהן יכולות לקבל פרמטר יחיד או 2 פרמטרים.
במקרה שהועבר פרמטר יחיד, הפונקציות יחזירו את תת המחרוזת החל מתו זה. הפונקציה slice יכולה גם לקבל פרמטר יחיד שלישי, ואז ספירת התווים תתחיל מהסוף.
במקרה של שני פרמטרים, הפונקציות יחזירו את תת המחרוזת המתחילה בתו שהאינדקס שלו הוא הפרמטר הראשון ומסתיימת בתו שהאינדקס שלו הוא הפרמטר השני. במקרים בהם הפרמטר הראשון כולל ערך גדול מהפרמטר השני (כלומר תו ההתחלה נמצא לאחר תו הסיום), substring תתייחס לפרמטרים כאילו הועברו בסדר הפוך ותחזיר את תת המחרוזת בצורה תקינה, ואילו slice תחזיר מחרוזת ריקה.
דוגמה:
let message = "Hello, World!";
let substring = message.substring(0, 5); // Result: "Hello"
let slice = message.slice(-6); // Result: "World!"
להלן מספר פונקציות חשובות נוספות שכדאי להכיר.
charAt - מחזירה את התו במיקום הנתון.
indexOf - מחזירה את האינדקס של התו הנתון, כשהספירה היא מתחילת המחרוזת (התו הראשון נספר כ-0).
lastIndexOf - מחזירה את האינדקס של התו הנתון, כשהספירה היא מסוף המחרוזת (התו האחרון נספר כ-1).
replace - מחזירה מחרוזת לאחר החלפת תת מחרוזת ממנה לתת מחרוזת אחרת.
startsWith - מחזירה האם מחרוזת מתחילה בתת מחרוזת נתונה.
endsWith - מחזירה האם מחרוזת מסתיימת בתת מחרוזת נתונה.
includes - מחזירה האם מחרוזת כוללת תת מחרוזת נתונה.
trim - מנקה תווי רווח מהתחלה ומסוף המחרוזת.
padStart - מחזירה את המחרוזת לאחר הוספת תו נתון בתחילתה עד לכמות תווים מוגדרת.
localeCompare - מחזירה 1- אם הערך הנתון הראשון מגיע לפני השני בסידור אלפביתי של התווים, 1 אם הערך השני מגיע לפני הראשון או 0 אם הערכים שווים.
דוגמה:
let text = "JavaScript";
// Index-based Access
let character = text.charAt(2); // Result: "v"
let position = text.indexOf("a"); // Result: 3
let lastIndex = text.lastIndexOf("a"); // Result: 7
// String Replace
let newText = text.replace("Script", "Code"); // Result: "JavaScript"
// Starts/Ends With and Includes
let startsWith = text.startsWith("Java"); // Result: true
let endsWith = text.endsWith("Script"); // Result: true
let includes = text.includes("Sc"); // Result: true
// Trim
let paddedText = " JavaScript ";
let trimmedText = paddedText.trim(); // Result: "JavaScript"
// Padding
let paddedString = "5".padStart(4, "0"); // Result: "0005"
// Locale comparison
let str1 = "ä";
let str2 = "z";
let comparison = str1.localeCompare(str2); // Result: -1 (ä comes before z in Swedish)
הערות נוספות לשימוש במחרוזות
מחרוזות ב-JavaScript הן בלתי ניתנות לשינוי, כלומר לא ניתן לשנות אותן לאחר יצירתן. פונקציות כמו concat, slice, substring ואחרות אינן משנות את המחרוזת עליה הן פועלות, אלא מחזירות מחרוזת חדשה.
מחרוזות JavaScript מיוצגות באמצעות קידוד UTF-16, המאפשרות ייצוג של מגוון רחב של תווים.
ניתן להשתמש בביטויים רגולריים (RegExps) להתאמת דפוסים ולמניפולציה של מחרוזות.
דוגמה:
// Removing Non-Alphanumeric Characters
let text = "Hello, $World!@#";
let cleanedText = text.replace(/[^\w\s]/g, ""); // Remove non-alphanumeric characters
console.log(cleanedText); // Output: "Hello World"
// Extracting Email Addresses from a Text:
let text = "Contact us at email@example.com or support@example.org";
let emailAddresses = text.match(/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g);
console.log(emailAddresses); // Output: ["email@example.com", "support@example.org"]
בדוגמה הראשונה הסרנו תווים שאינם אלפנומריים (כלומר אותיות ומספרים) מהמחרוזת. בדוגמה השניה איתרנו רשימות מיילים מהמחרוזת.
האובייקט Intl מספק שיטות לעיצוב והצגת מחרוזות בהתאם לשפות ולמקומות שונים.
דוגמה:
// Formatting Currency
let amount = 1234.56;
let currencyFormatter = new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' });
let formattedAmount = currencyFormatter.format(amount);
console.log(formattedAmount); // Output: "$1,234.56"
// Displaying Dates in Different Locales:
let date = new Date();
let dateFormatter = new Intl.DateTimeFormat('en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' });
let formattedDate = dateFormatter.format(date);
console.log(formattedDate); // Output: "Tuesday, April 12, 2024"
בדוגמה הראשונה פירמטנו (כלומר "עיצבנו" למבנה מוגדר) מספר והפכנו אותו למחרוזת של מטבע דולר אמריקאי. בדוגמה השניה פירמטנו את התאריך למחרוזת במבנה שקבענו.
טיפים לשימוש במחרוזות בג'אווה סקריפט
- השתמשו במירכאות בודדות או במירכאות כפולות באופן עקבי לאורך בסיס הקוד שלך למען עקביות ונוחות הקריאה.
- בחרו שמות משתנים תיאוריים בעת אחסון מחרוזות, כדי לשפר את קריאות הקוד.
- השתמשו ב-template literal לאינטרפולציה ועיצוב מורכבים יותר של מחרוזות.
- זכרו שהתווים במחרוזות ב-JavaScript מתחילים מאינדקס 0 ולא מ-1.
- זכרו שהפונקציות השונות הן case sensitive, כלומר, יש חשיבות לאותיות גדולות או קטנות במחרוזות.
מחרוזות הן טיפוס נתונים בסיסי ב-JavaScript המשמש לייצוג נתוני טקסט. על ידי שליטה בפעולות ומניפולציות של מחרוזות, ניתן לעבוד ביעילות עם נתונים טקסטואליים. בין אם מדובר בשרשור מחרוזות, חילוץ תת מחרוזות או כל מניפולציה אחרת, הבנת מחרוזות חיונית לבניית יישומי JavaScript חזקים ויעילים.