שיעורי מודול (2/4)
החלפה בסיסית ו-`$1`
ב-JavaScript, String.prototype.replace(regex, replacement) מבצע א
התאמה לתבנית ומחליף כל התאמה במחרוזת הנתונה. עם g
סמן אותו מחליף את כל ההתאמות; בלעדיו, רק הראשון. replaceAll
כופה את ההתנהגות הגלובלית (ודורש את הדגל g על הביטוי הרגולרי).
'ciao mondo'.replace(/o/g, '0'); // "cia0 m0nd0"
'Mario Rossi'.replace(/(\w+) (\w+)/, '$2 $1'); // "Rossi Mario"הפניות במחרוזת ההחלפה
בתוך מחרוזת ההחלפה, אלה מיוחדים:
$1,$2, \u2026 -- הפניה לאחור ל-הקבוצה הממוספרת של הביטוי הרגולרי.$<name>-- הפניה לאחור ל-הקבוצה בעלת השם.$&-- המשחק כולו.- `$`` -- text before the match.
$'-- text after the match.$$-- a single literal$.
const data = '2024-03-15';
data.replace(/(\d{4})-(\d{2})-(\d{2})/, '$3/$2/$1');
// "15/03/2024"עצב מחדש את התאריך על ידי היפוך הסדר. ל-Regex יש 3 קבוצות, וב-
מחרוזת החלפה אתה מפנה אליהם בתור $1, $2, $3.
התייחסויות מיוחדות בהחלפות
מלבד $1 ו-$2, אתה יכול להשתמש ב-$& כדי להוסיף את כל הטקסט המותאם, $ for all text preceding the match, and$'` עבור כל הטקסט שאחריו. זה מאפשר תחליפים עשירים גם בלי לכתוב קוד JS.
נסה את זה
מצא כל תאריך בפורמט YYYY-MM-DD עם שלוש קבוצות (שנה, חודש, יום). בדרך זו תוכל להשתמש ב- replace כדי להשיג DD/MM/YYYY.
הצג רמז
החלף את \\d+ ב-\\d{4}, \\d{2}, \\d{2} בתוך שלוש קבוצות שנלכדו ב-(...).
הפתרון זמין לאחר 3 ניסיונות
סקירת התרגיל
מצא את 'ראשון אחרון' בתור שתי קבוצות בשם 'נום' ו'קונום', כך שתוכל לכתוב אותו מחדש בתור 'קוגנום, נום' באמצעות '$<cognome>, $<nome>`.
הצג רמז
השתמש ב-(?<nome>\\w+) ו-(?<cognome>\\w+) מופרדים ב-\\s+.
הפתרון זמין לאחר 3 ניסיונות
אתגר נוסף
Create a capture pattern to reverse the order of first and last name from `Lastname, Firstname` format to `Firstname Lastname`.
הצג רמז
Use two capture groups for last and first name; the replacement will be performed via $2 $1.
הפתרון זמין לאחר 3 ניסיונות