Regular Expressions – תבניות טקסט
RegExp זה אובייקט שיוצר תבנית טקסט .
מכריזים עליו באחת משתי הדרכים הבאות:
ע"י הבונה של JS:
1 |
|
או ע"י הליטרל (הדרך המומלצת והמהירה) :
1 |
|
הפרמטר options קובע האם האובייקט התייחס לכל הטקסט והאם הוא לא יתייחס להבדל בין אותיות גדולות לקטנות (CASE INSESITIVE)
כדי לסמן שהאובייקט יתייחס לכל הטקסט כותבים את האות ה-g (מהמילה global).
כדי לסמן שהאובייקט לא יתייחס להבדל בין אותיות גדולות לקטנות כותבים את האות i.
ניתן להשתמש בשניהם ביחד ע"י כתיבת gi.
1 2 3 |
|
הפרמטר pattern קובא את תבנית הטקסט שאליה האובייקט יתייחס מאפיין זה יכול להכין סימנים מיוחדים(רגולריים) אותיות,מספרים ותווים רגילים
תווים רגולריים
\ – מסמל את התו שאחרי או Escape sequence
לדוגמא: '\\' – יסמן את הלוכסן 'n\' – יסמן שורה חדשה
^ – מסמן את תחילת המחרוזת. אם אובייקט ה-regExp אופיין כרב שורתי (multiline) אז התו ^ מסמן את התו שבא אחרי ה-n\ או r\
$ – מסמן את סוף המחרוזת. אם אובייקט ה-regExp אופיין כרב שורתי (multiline) אז התו $ מסמל את התו שלפני ה-n\ או לפני ה-r\
* – מסמל שהתו שקדם לו יכול להופיע במחרוזת אפס פעמים או מס' פעמים ברצף. לדוגמא: *zo מסמל את האות z ואת המחרוזת zoo
+ – מסמל שהתו שקדם לו יכול להופיע פעם אחת לפחות או יותר ברצף. לדוגמא: *zo מסמל את המחרוזת zoo אבל לא את המחרוזת z
? – מסמל שהתו שלפניו יופיע פעם אחת או בכלל לא. לדגומא: *(do(es מסמל את do ו-does
{n}
n הוא מספר אי שלילי. מסמל את התו שלפניו n פעמים בדיוק! לדוגמא: {o{2 לא מסמל את o במחרוזת Bob אבל מסמל את את הדאבל o במחרוזת food
{n,}
n הוא מספר אי שלילי. מסמל את התו שלפניו לפחות n פעמים. לדוגמא {,2}o לא מסמל את ה-o במחרוזת Bob אבל כן מסמל את כל ה-o במחרוזת "foooooooooooooood"
{0,} שווה ערך ל *
{1,} שווה ערך ל +
{n,m}
n ו-m הם מספרים אי שליליים כאשר n קטן מ-m. מסמל את התו שלפניו בין n ל-m פעמים לדוגמא: {1,3} יסמל את ה-o היחיה במחרוזת Bob או את הדאבל o במחרוזת boobs או את הטריפל o במחרוזת foood אבל לא את ה-o במחרוזת gooooooooood
{0,1} שווה ערך ל ?
.(נקודה) – מסמל את כל התווים חוץ מה-escapse sequence הזה n\ . כדי לסמל את כל התווים כולל n\ משתמשים בתבנית [s\S\]
x|y – מסמל או את x או את y. לדוגמא:
1 |
|
מסמל או את המחרוזת zood או את המחרוזת food
סדרות
[xyz] – מסמל רק את התווים הנמצאים בתוך ה[] מתוך המחרוזת. לדוגמא [abc] מסמל את ה-a ב-plain
[xyz^] – מסמל את כל התווים שלא נמצאים בתוך ה-[] מתוך מחרוזת. לדוגמא[abc^] מסמל את האות p ב-plain
[a-z] – מסמל את כל התווים שנמצים בין התו השמאלי למקף לתו הימני במקף. לדוגמא [a-z] מסמל את כל אותיות האלפאבית באנגלית.
[a-z^] – מסמל את כל התווים שלא נמצאים בין התו השמאלי למקף לתו הימני למקף. לדוגמא [a-z^] מסמל את כל התווים שהם לא אותיות באנגלית
(x) – ברגע שמסמנים ביטוי מסוים בסוגריים הוא *נשמר* ויהיה אפשר להשתמש בו ע"י ציון $ והאינדקס שלו לפי מס' הפעמים שהשתמשת בסוגריים.
לדוגמא ה-regExp הבא מבטא ביטוי מסוים מוקף בתגיות פסואדו ומשתמש ב-replace (שיוסבר בהמשך)כדי להחליף את תגיות הפסאודו בתגיות HTML אמיתיות ועדיין שהביוטי ישאר ביניהן:
1 2 3 4 5 6 7 |
|
[b\] – מסמל את ה-backspace
b\ – מסמל את התו שבקצה המילה. לדגומא: bc\ מסמל במחרוזת "is black cat" את ה-c של cat אבל לא את ה-c של black
B\ – מסמל את התו כשהתו לא בקצה של מילה. לדגומא: Bc\ מסמל במחרוזת "is black cat" את ה-c של black אבל לא את ה-c של cat.
cX\ – מסמל את לחצן הקונטרול(Ctrl)+לחצן אחר במקלדת
d\ – מסמל כל תו שהוא ספרה.
D\ – מסמל כל תו שהוא לא ספרה
f\ – מבטא את ה- formfeed
n\ – מבטא שורה חדשה
r\ – מבטא את מקש האנטר(Enter)
t\ – מבטא את ה-טאב(Tab Character)
v\ – מבטא את הטאב האנכי(Vertical Tab Character)
s\ – מבטא כל מרווח לבן. שווה ערך לביטוי
1 |
|
S\ – מבטא כל תו שהוא לא מרווח לבן. שווה ערך לביטוי [t\v\f\n\r\^]
w\ – מבטא כל אות באנגלית, כל מספר וקו תחתון(underscore _).שווה ערך לביטוי:
1 |
|
W\ – מבטא כל תו שהוא לא אות באנגלית,מספר או קו תחתון.שווה ערך לביטוי:
1 |
|
n\
n הוא ערך אי-שלילי.מסמל את הסוגריים n.לדוגמא:
1 2 3 |
|
ועוד שני ביטויים רגולריים
\ooctalWhere o is an octal escape value,
this expression allows you to embed ASCII codes into regular expressions.\xhex
Where x is an hexadecimal escape value,
this expression allows you to embed ASCII codes into regular expressions.
מאפיינים
$9…$1 – כל n$ שווה לסוגריים מסוימים בתבנית ה-regExp
input – מאפיין זה הוא סטטי והוא מחזיר את הטקסט האחרון שיתבצע עליו אחת מהשיטות הבאות: test,exec לא משנה על איזה אובייקט RegExp
multiline – אם הטקסט נלקח מהאלמנט – TextArea אז המאפיין הזה מקבל ערך true ולהיפך
lastMatch – מאפיין זה מחזיר את התוצאה הראשונה של המתודה Exec. מאפיין זה הוא סטטי ולכן מפעילים אותו בעזרת אובייקט המקור ולא האובייקט שכתבנו
1 2 3 |
|
ולכן מאפיין זה יחזיר את התוצאה האחרונה של ביצוע המתודה exec לא משנה של איזה אוביקט שיצרנו
lastParen – מחזיר את התוצאה האחרונה של המתודה exec.מאפיין זה הוא סטטי ולכן עלינו לקורא לו דרך RegExp ולא דרך האובייקט שיצרנו
1 2 3 |
|
leftContext – מחזיר את כל הטקסט שמופיע משמאל לביטוי שהתקבל מהשיטה exec
אחרי כל exec ה-leftContext עובר לאיבר הבא
1 2 3 |
|
rightContext – מחזיר את כל הטקסט שמופיע מימין לביטוי שהתקבל מהשיטה exec
אחרי כל exec ה-rightContext עובר לאיבר הבא
1 2 3 4 5 |
|
leftContext ו-rightContext הם מאפיינים סטטיים ולכן עליהם להיקרא ישירות מ-RegExp ולא מהאובייקט שיצרנו
source – מחזיר את ה-pattern שיצרנו
שיטות
שיטת test
תחביר:
1 |
|
הפרמטר str הוא מסוג מחרוזת והשיטה בודקת האם המחרוזת שמועברת כפרמטר ממלאת אחרי התבנית השיטה מחזירה ערך בוליאני (trueאו false).
הדוגמא הבאה למשל בודקת האם במחרוזת יש אך ורק מספרים ואותיות.
1 2 3 |
|
השיטה compile
דורסת את הפרמטרים שהוגדרו עם הגדרת ה-regExp ושמה פרמטרים חדשים
1 2 |
|
השיטה exec
תחביר:
1 2 |
|
regExpObj – אובייקט RegExp
שיטה זו מחזירה מערך של כל הביטויים(תווים ומילים) שנמצאו מתאימים לתבנית. לדגומא:
1 2 3 |
|
שיטות של האובייקט STRING שמשתמשות ב-RegExp
השיטה replace
תחביר:
1 |
|
str – משתנה מחרוזת
regExp – אובייקט RegExp
strToReplace – מחרוזת שתחליף את כל הביטויים שנמצאו מתאימים לתבנית של אובייקט ה-regExp
השיטה match
תחביר:
1 |
|
str – מחרוזת
regExp – אובייקט regExp
השיטה מחזירה מערך של כל הביטויים שנמצאו מתאימים לתבנית של אובייקט ה-regExp
לעוד פרטים
השיטה search
תחביר:
1 |
|
str – משתנה מחרוזת
regExp – אובייקט RegExp
מחזיר את המיקום של תחילת הביטוי שנמצא מתאים ל-pattern של ה-regExp אם לא נמצא התאמה מוחזר 1- (מינוס אחד)
לעוד פרטים
אובייקט RegExp יורש מאובייקט Object ולכן הוא מקבל גם את השיטות והמאפיינים הבאים:
contructor, toString, prototype, valueOf, toSource, watch ו- unwatch
תגובות בפייסבוק