ביטויים רגולריים ב-JavaScript: מבוא

העדכון אחרון: 5 נובמבר 2025
מחבר: TecnoDigital
ביטויים רגולריים ב-JavaScript

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

מבוא לביטויים רגולריים

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

ב-JavaScript, ביטויים רגולריים נוצרים באמצעות המחלקה RegExp או באמצעות מילולית /patrón/. התבנית היא הביטוי הרגולרי עצמו, המוקף בין קווים קדמיים. בואו נסתכל על דוגמה פשוטה:

const regex = /hola/;

 

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

תחביר בסיסי של ביטויים רגולריים

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

דמויות מילוליות

תווים מילוליים הם אלה שמחפשים כפי שהם מופיעים בטקסט. לדוגמה, הביטוי הרגולרי /hola/ יחפש את רצף התווים "שלום" במחרוזת טקסט. חשוב לציין שביטויים רגולריים הם תלויי רישיות, אז /hola/ לא יתאים ל-"Hello" או "HELLO".

מטא-תווים

מטא-תווים הם תווים מיוחדים שיש להם משמעות מיוחדת בביטויים רגולריים. לדוגמה, המטא-האופי . הוא משמש לייצוג כל תו מלבד שורה חדשה. מטא נפוץ נוסף הוא ה ^, המשמש לציון תחילתה של מחרוזת טקסט. לדוגמה, הביטוי הרגולרי /^hola/ יתאים לכל מחרוזת טקסט שמתחילה ב-"hello".

שיעורי אופי

מחלקות תווים משמשות לחיפוש כל תו בתוך קבוצה מסוימת. לדוגמה, הביטוי הרגולרי /[aeiou]/ יתאים לכל תנועות במחרוזת טקסט. אפשר גם להשתמש בטווחי תווים במחלקות תווים. לדוגמה, הביטוי הרגולרי /[a-z]/ יתאים לכל אות קטנה.

מכמתים

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

עוגנים

עוגנים משמשים לציון המיקום של התאמה בתוך מחרוזת טקסט. למשל, העוגן \b תואם גבול מילה. לדוגמה, הביטוי הרגולרי /bholab/ יתאים רק למילה "שלום" בתור א מילה מלאה, מבלי להתאים מילים ארוכות יותר המכילות "שלום" כחלק מהן.

אלו הן רק כמה דוגמאות לתחביר ביטוי רגולרי בסיסי ב-JavaScript. כְּמוֹ בואו נתקדם במאמר זה, נחקור מושגים וטכניקות מתקדמות יותר לעבודה עם ביטויים רגולריים ב-JavaScript.

חיפוש התאמה בסיסי

אחת הפעולות הנפוצות ביותר המבוצעות עם ביטויים רגולריים היא חיפוש התאמות במחרוזת טקסט. ב-JavaScript, אנחנו יכולים להשתמש בשיטה search() כדי למצוא את ההתאמה הראשונה של ביטוי רגולרי במחרוזת טקסט. בוא נראה דוגמה:

const texto = "¡Hola, mundo!";
const regex = /mundo/;
const indice = texto.search(regex);
console.log(indice); // 7

בדוגמה זו, השתמשנו בשיטה search() כדי למצוא את ההתאמה הראשונה של הביטוי הרגולרי /mundo/ במחרוזת הטקסט "שלום, עולם!" השיטה search() מחזירה את האינדקס של ההתאמה הראשונה שנמצאה, או -1 אם לא נמצאה התאמה.

בנוסף לשיטה search(), JavaScript מספק גם שיטות שימושיות אחרות לעבודה עם ביטויים רגולריים, כגון match(), replace(), split() y test(). לכל אחת מהשיטות הללו יש מטרה משלה וניתן להשתמש בה בהתאם לצרכים הספציפיים שלך.

שימוש בשינויים ודגלים

ב-JavaScript, ביטויים רגולריים יכולים להכיל שינויים ודגלים המאפשרים חיפושים גמישים ומותאמים יותר. משנים מתווספים לסוף ביטוי רגולרי ומשנים את התנהגותו. כמה מהמשתנים הנפוצים ביותר הם:

אני (לא רגיש)

המשנה i משמש לביצוע חיפוש לא תלוי רישיות. לדוגמה, הביטוי הרגולרי /hola/i יתאים גם ל"שלום" וגם ל"הלו" או "HELLO".

g (עולמי)

המשנה g הוא משמש לביצוע חיפוש גלובלי על כל מחרוזת הטקסט, במקום לעצור בהתאמה הראשונה שנמצאה. לדוגמה, הביטוי הרגולרי /a+/g יתאים לכל המופעים של "a" אחד או יותר במחרוזת טקסט.

  מה זה Scratch: מדריך שלם ללמידה והוראת תכנות חזותי

m (רב שורות)

המשנה m הוא משמש לביצוע חיפוש במספר שורות בתוך מחרוזת טקסט. לדוגמה, הביטוי הרגולרי /^hola/m יתאים למילה "שלום" בתחילת כל שורה במחרוזת טקסט.

בנוסף לשינויים, JavaScript מאפשר גם שימוש בדגלים בביטויים רגולריים. דגלים מתווספים לאחר הקו הנטוי השני בעת יצירת ביטוי רגולרי באמצעות המחלקה RegExp. כמה מהדגלים הנפוצים ביותר הם:

אני (לא רגיש)

כמו המשנה i, הדגל i מבצע חיפוש לא תלוי רישיות. לדוגמה, הביטוי הרגולרי new RegExp("hola", "i") יתאים גם ל"שלום" וגם ל"הלו" או "HELLO".

g (עולמי)

כמו המשנה g, הדגל g מבצע חיפוש גלובלי על כל מחרוזת הטקסט. לדוגמה, הביטוי הרגולרי new RegExp("a+", "g") יתאים לכל המופעים של "a" אחד או יותר במחרוזת טקסט.

m (רב שורות)

כמו המשנה m, הדגל m מבצע חיפוש במספר שורות בתוך מחרוזת טקסט. לדוגמה, הביטוי הרגולרי new RegExp("^hola", "m") יתאים למילה "שלום" בתחילת כל שורה במחרוזת טקסט.

שימוש במתאמים ובדגלים בביטויים רגולריים של JavaScript יכול להיות שימושי מאוד כדי להתאים חיפושים למקרים ודרישות ספציפיות שונות. התנסו איתם וגלו כיצד תוכלו להפיק מהם את המרב פונקציונליות בקוד שלך.

דמויות מטא ודמויות מיוחדות

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

. (נְקוּדָה)

המטא-האופי . הוא משמש לייצוג כל תו מלבד שורה חדשה. לדוגמה, הביטוי הרגולרי /h.t/ יתאים ל-"hat", "hot", "hit" ולכל מילה אחרת בת שלוש אותיות שמתחילה ב-"h" ומסתיימת ב-"t".

\ (קו נטוי אחורי)

הצלב האחורי משמש כדי לברוח לתווים מיוחדים בביטוי רגולרי. לדוגמה, אם ברצונך לחפש נקודה מילולית במחרוזת טקסט, עליך להימלט ממנה באמצעות הקו הנטוי האחורי. הביטוי הרגולרי /www\.google\.com/ יתאים למחרוזת הטקסט "www.google.com".

\d (ספרה)

המטא-האופי \d משמש לחיפוש כל ספרה מ-0 עד 9. לדוגמה, הביטוי הרגולרי /\d+/ יתאים לכל מספר ספרתי או יותר במחרוזת טקסט.

\w (תו אלפאנומרי)

המטא-האופי \w משמש לחיפוש כל תו אלפאנומרי (אותיות גדולות וקטנות, ספרות וקווים תחתונים). לדוגמה, הביטוי הרגולרי /\w+/ יתאים לכל מילה של תו אלפאנומרי אחד או יותר במחרוזת טקסט.

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

כיתות וטווחי אופי

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

[aeiou]

כיתת הדמות [aeiou] יתאים לכל תנועות במחרוזת טקסט. לדוגמה, הביטוי הרגולרי /[aeiou]/ יתאים ל-"a", "e", "i", "o" או "u" במחרוזת טקסט.

[az]

מגוון הדמויות [a-z] יתאים לכל אות קטנה באלפבית האנגלי. לדוגמה, הביטוי הרגולרי /[a-z]/ יתאים לכל אות קטנה במחרוזת טקסט.

[0-9]

מגוון הדמויות [0-9] יתאים לכל ספרה מ-0 עד 9 במחרוזת טקסט. לדוגמה, הביטוי הרגולרי /[0-9]/ יתאים לכל מספר חד ספרתי.

[א-ז-ז]

כיתת הדמות [A-Za-z] יתאים לכל אות גדולה או קטנה באלפבית האנגלי. לדוגמה, הביטוי הרגולרי /[A-Za-z]/ יתאים לכל אות במחרוזת טקסט.

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

כימות וחזרות

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

* (כוכבית)

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

  Moment.js: הסבר מלא ודוגמאות מעשיות של ספריית התאריכים

+ (עוד)

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

? (שְׁאֵלָה)

המכמת ? מציין שהאלמנט הקודם עשוי להופיע אפס או פעם אחת. לדוגמה, הביטוי הרגולרי /colou?r/ יתאים גם ל"צבע" וגם ל"צבע".

{n} (בדיוק n פעמים)

המכמת {n} מציין שהאלמנט הקודם חייב להופיע בדיוק n פעמים. לדוגמה, הביטוי הרגולרי /a{3}/ יתאים בדיוק לשלושה "a" במחרוזת טקסט.

{n,} (לפחות n פעמים)

המכמת {n,} מציין שהאלמנט הקודם חייב להופיע לפחות n פעמים. לדוגמה, הביטוי הרגולרי /a{2,}/ יתאים לשניים או יותר א' במחרוזת טקסט.

{נ,מ}

המכמת {n,m} מציין שהאלמנט הקודם חייב להופיע לפחות n פעמים ולכל היותר m פעמים. לדוגמה, הביטוי הרגולרי /a{2,4}/ יתאים שניים, שלושה או ארבעה "a" במחרוזת טקסט.

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

עוגנים וגבולות מילים

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

\b (גבול מילים)

המילה גבול \b תואם את הגבול בין תו אלפאנומרי לתו שאינו אלפאנומרי. לדוגמה, הביטוי הרגולרי /\bjavascript\b/ יתאים רק למילה "javascript" כמילה שלמה, ולא יתאים למילים ארוכות יותר המכילות "javascript" כחלק מהן.

^ (תחילת שורה)

הדמות ^ הוא משמש לציון תחילת שורה במחרוזת טקסט. לדוגמה, הביטוי הרגולרי /^hola/ יתאים למילה "שלום" בתחילת כל שורה במחרוזת טקסט.

$ (סוף שורה)

הדמות $ הוא משמש לציון סוף שורה במחרוזת טקסט. לדוגמה, הביטוי הרגולרי /mundo$/ יתאים למילה "עולם" בסוף כל שורה במחרוזת טקסט.

\A (תחילת טקסט)

הדמות \A הוא משמש לציון ההתחלה של כל הטקסט במחרוזת טקסט, לא רק תחילת שורה. לדוגמה, הביטוי הרגולרי /^\AHola/ יתאים למילה "שלום" בתחילת הטקסט כולו.

\Z (סוף טקסט)

הדמות \Z משמש לציון סוף כל הטקסט במחרוזת טקסט, לא רק סוף שורה. לדוגמה, הביטוי הרגולרי /Mundo\Z/ יתאים למילה "עולם" בסוף הטקסט כולו.

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

קבוצות ולכידות

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

( ) (סוגריים)

הסוגריים הם הם נוהגים לקבץ ביטויי משנה בביטוי רגולרי. לדוגמה, הביטוי הרגולרי /(d{2})-(d{2})-(d{4})/ se משמש לחיפוש תאריך בפורמט "dd-mm-yyyy. הקבוצות ( ) הם מאפשרים לנו ללכוד את ערכי היום, החודש והשנה בנפרד.

\1, \2, \3 (הפניות קבוצתיות)

הפניות קבוצתיות משמשות להתייחסות לקבוצות שנתפסו בעבר בביטוי רגולרי. לדוגמה, הביטוי הרגולרי /(\w+) \1/ יתאים לכל מילה שלאחריה אותה מילה חוזרת. לדוגמה, "שלום שלום", "עולם העולם" וכו'.

?: (קבוצה לא לוכדת)

הסמל ?: הוא משמש ליצירת קבוצות שאינן לוכדות. קבוצות אלו משמשות כאשר אנו רוצים לקבץ ביטויי משנה, אך איננו רוצים ללכוד את התוצאה. לדוגמה, הביטוי הרגולרי /https?:\/\/(?:www\.)?google\.com/ יתאים גם ל-"http://www.google.com" וגם ל-"https://google.com", אבל יתפוס רק את החלק הרלוונטי של כתובת האתר.

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

שיטות שימושיות לעבודה עם ביטויים רגולריים

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

התאמה()

השיטה match() הוא משמש כדי למצוא את כל ההתאמות של ביטוי רגולרי במחרוזת טקסט ולהחזיר מערך עם התוצאות. לְדוּגמָה:

const texto = "¡Hola, mundo!";
const regex = /o/g;
const coincidencias = texto.match(regex);
console.log(coincidencias); // ["o", "o"]

בדוגמה זו, השתמשנו בשיטה match() כדי למצוא את כל ההתאמות של הביטוי הרגולרי /o/g במחרוזת הטקסט "שלום, עולם!" השיטה match() מחזיר מערך עם כל ההתאמות שנמצאו.

  מדריך מלא לסימון פולני הפוך

החלף ()

השיטה replace() משמש להחלפת התאמות של ביטוי רגולרי במחרוזת טקסט בערך חדש. לְדוּגמָה:

const texto = "¡Hola, mundo!";
const regex = /mundo/;
const nuevoTexto = texto.replace(regex, "amigo");
console.log(nuevoTexto); // "¡Hola, amigo!"

בדוגמה זו, השתמשנו בשיטה replace() כדי להחליף את התאמת הביטוי הרגולרי /mundo/ במחרוזת הטקסט "שלום, עולם!" עבור המילה "חבר". השיטה replace() מחזירה מחרוזת טקסט חדשה עם ההחלפות שבוצעו.

לְפַצֵל()

השיטה split() משמש לפיצול מחרוזת טקסט למערך של מחרוזות משנה באמצעות ביטוי רגולרי כמפריד. לְדוּגמָה:

const texto = "Hola,mundo,amigo";
const regex = /,/g;
const subcadenas = texto.split(regex);
console.log(subcadenas); // ["Hola", "mundo", "amigo"]

בדוגמה זו, השתמשנו בשיטה split() לפצל את מחרוזת הטקסט "שלום, עולם, חבר" למערך של מחרוזות משנה באמצעות הביטוי הרגולרי /,/g כמפריד. השיטה split() מחזירה מערך עם מחרוזות המשנה שהתקבלו.

מבחן ()

השיטה test() הוא משמש כדי לבדוק אם לביטוי רגולרי יש התאמות כלשהן במחרוזת טקסט. השיטה חוזרת true אם יש התאמה ו false אַחֶרֶת. לְדוּגמָה:

const texto = "Hola, mundo!";
const regex = /mundo/;
const resultado = regex.test(texto);
console.log(resultado); // true

בדוגמה זו, השתמשנו בשיטה test() כדי לבדוק אם הביטוי הרגולרי /mundo/ יש התאמות כלשהן במחרוזת הטקסט "Hello, world!". השיטה test() להחזיר true כי יש צירוף מקרים.

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

שאלות נפוצות

מהם ביטויים רגולריים ב-JavaScript? ביטויים רגולריים ב-JavaScript הם דפוסי חיפוש המשמשים לאיתור ולטפל בטקסט במחרוזות תווים.

כיצד ליצור ביטויים רגולריים ב-JavaScript? ביטויים רגולריים ב-JavaScript נוצרים באמצעות המחלקה RegExp או באמצעות מילולית /patrón/.

מה ההבדל בין משנה ודגלים בביטויים רגולריים? משנים מתווספים לסוף ביטוי רגולרי ומשנים את התנהגותו. דגלים מתווספים לאחר הקו הנטוי השני בעת יצירת ביטוי רגולרי באמצעות המחלקה RegExp.

מה ההבדל בין השיטה match() והשיטה test()? השיטה match() הוא משמש כדי למצוא את כל ההתאמות של ביטוי רגולרי במחרוזת טקסט ומחזיר מערך עם התוצאות. השיטה test() הוא משמש כדי לבדוק אם לביטוי רגולרי יש התאמות כלשהן במחרוזת טקסט ומחזיר ערך בוליאני.

כיצד אוכל ללכוד ערכים ספציפיים באמצעות קבוצות בביטוי רגולרי? הקבוצות ( ) בביטוי רגולרי מאפשרים לך ללכוד ביטויי משנה ספציפיים. לאחר מכן תוכל להפנות לקבוצות אלו באמצעות ההפניות \1, \2, וכו '

באילו שיטות אני יכול להשתמש כדי לעבוד עם ביטויים רגולריים ב-JavaScript? כמה שיטות שימושיות לעבודה עם ביטויים רגולריים ב-JavaScript match(), replace(), split() y test(). לכל אחת מהשיטות הללו יש מטרה משלה וניתן להשתמש בה בהתאם לצרכים הספציפיים שלך.

מסקנה

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

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