שיעורי מודול (1/4)
כל הדגלים בפירוט
תקציר מלא של כל הדגלים הזמינים ב-JavaScript המודרני (ES2024). דגל הוא תו יחיד שמשנה את ההתנהגות של regex; ניתן לשלב אותם בכל סדר.
| דגל | שם | אפקט |
|---|---|---|
g | גלובלי | מוצא את כל ההתאמות, לא רק את הראשונה (נדרש עבור matchAll). |
i | התעלם מכתב | לא תלוי רישיות (כולל תווי Unicode עם הדגל u/v). |
m | Multiline | ^ ו-$ תואמים את ההתחלה/סוף של שורה, לא רק למחרוזת. |
s | נקדו הכל | ה-. תואם גם את השורה החדשה \n. |
u | Unicode | טיפול נכון בנקודות קוד > 0xFFFF ומאפשר \\p{...}. |
v | Unicode v-mode | הרחבה מודרנית של u עם פעולות מוגדרות ([abc&&[def]]). |
y | דביק | מתאים רק מעמדה lastIndex, ללא דילוגים. |
d | יש מדדים | התוצאה כוללת indices עם התחלה/סוף של כל קבוצה. |
const re = /foo/gimu; // global + insensitive + multiline + unicode
re.flags; // "gimu" (always in canonical order: dgimsuvy)שילובים אופייניים
g+i-- "מצא הכל, לא תלוי רישיות". 80% מהשימושים המעשיים.g+m-- כדי להתאים שורה אחר שורה בטקסט מרובה שורות.g+s-- "הנקודה מתאימה לכל דבר, כולל שורות חדשות". שימושי לחילוץ בלוקים על פני מספר קווים.u(אוv) -- תמיד אם אתה מתמודד עם טקסט מהעולם האמיתי בכל שפה או אימוג'י.
Unicode v-mode והתפתחות דגל
הדגל v (זמין ב-ES2024) מחליף את u ומאפשר פעולות מתקדמות על סטים, כגון חיתוך וחיסור של מחלקות תווים (למשל [\\p{White_Space}&&\\p{ASCII}]).
נסה את זה
מצא את כל המופעים של 'ciao' ללא קשר למקרה. השתמש בדגל הנכון.
הצג רמז
הוסף את דגל ה-i (לא תלוי רישיות) ליד g.
הפתרון זמין לאחר 3 ניסיונות
סקירת התרגיל
מצא בלוק בין `<pre>` ו`</pre>` גם אם הוא מכיל שורות חדשות. עליך להשתמש בדגל שגורם לנקודה להתאים גם לשורות חדשות.
הצג רמז
הוסף את דגל s כך . מתאים גם לשורות חדשות, והשתמש ב-lazy .+? לעצור ב</pre> הראשון.
הפתרון זמין לאחר 3 ניסיונות
אתגר נוסף
Match sequences of ASCII characters, explicitly excluding digits, using Unicode v-mode properties (flag `v`) and set subtraction syntax `[\p{ASCII}--\p{Nd}]+`.
הצג רמז
השתמש בדגל v וכתוב את החיסור המוגדר [\\p{ASCII}--\\p{Nd}]+ כדי לא לכלול מספרים.
הפתרון זמין לאחר 3 ניסיונות