שימו לב שהרגאקס כבר נהיה פה קצת יותר לוגי מפעמים קודמות, בהצלחה!
אז ככה, תנאים עושים בצורה הזאת:
קוד: בחר הכל
(a|b|c)
וזה יגיד: או A או B או C
דוגמא שנייה:
קוד: בחר הכל
(cat|dog)
או כלב או חתול.
עכשיו, בוא ניתן לעצמינו משימה: זיהוי מתי בנאדם מדבר על כלב או חתול, ובמידה והוא מדבר על כלב הוא חתול אז שיגיד על מה הוא מדבר (כלב או חתול).
אז נתחיל בתנאי של הזיהוי:
קוד: בחר הכל
if ($regex($1-,/(cats?|dogs?)/)) { ... }
(אם לא הבנתם למה הסימן שאלה, הסימן שאלה חל על האות s, מה שאומר שאפשר לכתוב גם cat ביחיד וגם cats ברבים).
עכשיו, התנאי שיצרנו יבדוק אם בטקסט קיימת המילה או cat או cats או dog או dogs, אם כן: ...
עכשיו, איך נוכל לדעת על מה הוא דיבר? אז פה מגיע הסוג, הסוגריים הם לא רק תנאי, אלא גם משמשים לשמירת התוכן שלהם לזכרון הרגאקס שנקרא גם בשמו האחר: regml.
במידה והתנאי שלנו נכון, סימן שהמשתמש כתב משהו שנתנו בתנאי, ומה שהוא רשם יכנס לתוך $REGML, ובכלל שיש רק תנאי אחד, משמע זה יהיה:
קוד: בחר הכל
$regml(1)
מה שאומר שאפשר לעשות:
קוד: בחר הכל
if ($regex($1-,/(cats?|dogs?)/)) { msg # $nick has already talked about $regml(1) }
עכשיו תצטרכו להבין כי לא מדובר רק בתנאי, הסוגריים משמשים גם כדי לקחת מידע מתוך נתונים, ואתן דוגמא.
יש לנו את הטקסט הבא:
קוד: בחר הכל
<script type="text/javascript">
נרצה לקחת את הטקסט מתוך הגרשיים (text/javascript) ונעשה זאת קודם כל בעזרת זיהוי הפטרן:
קוד: בחר הכל
/<script type=".+">/i
עכשיו, אין ניקח את בין הגרשיים? נכניס לסוגריים!
קוד: בחר הכל
/<script type="(.+)">/i
כעת מה שנכתב בין הגרשיים יהיה $regml(1)
כעת עוד דוגמא כדי להראות לכם שאפשר גם יותר מREGML אחד:
קוד: בחר הכל
<link href="./styles/studio31/theme/print.css" rel="stylesheet" type="text/css" media="print" title="printonly" />
נהפוך את זה לרגאקס עם סוגריים:
קוד: בחר הכל
<link href="(.+)" rel="(.+)" type="(.+)" media="(.+)" title="(.+)" />
כעת:
קוד: בחר הכל
HREF = $regml(1)
REL = $regml(2)
TYPE = $regml(3)
MEDIA = $regml(4)
TITLE = $regml(5)
כעת נלמד לעבוד עם REGML בתוך הרגאקס עצמו, לדוגמא בתגי HTML:
קוד: בחר הכל
/<tag>.+<\/tag>/i
זה מזהה תאג HTML בשם TAG, אבל נגיד היינו רוצים להתאים את זה לכל תג אפשרי? היינו צריכים להשתמש בסוגריים על השם של הטאג, לשמור אותו לזכרון ולאחר מכן לבדוק מתי הוא נסגר, זאת אומרת /TAG, סלאש והתאג שהיה לפניו.
אז נעשה את התאג בסוגריים ונהפוך אותו בכלל לנקודה כדי שכל תאג יהיה אפשרי:
קוד: בחר הכל
/<(.+)>.+<\/tag>/i
עכשיו נרצה לבדוק מתי הוא נסגר, אז כדי לייבא REGML בתוך הקוד משתמשים בתו שבירה ומספר הREGML לדוגמא:
קוד: בחר הכל
\1 = $regml(1)
\2 = $regml(2)
אז כדי לבדוק מתי התאג נסגר נעשה:
קוד: בחר הכל
/<(.+)>.+<\/\1>/i
ובכך נבדוק את כל תאג ומתי שהוא נסגר.
תזכורת: אם לא הבנתם למה יש /\, זה בגלל ש/ הוא תו שמור ואי אפשר להשתמש בו סתם ככה, אז צריך לשים לפניו תו שבירה \ וככה זה יוצא /\ ואז בעצם זה מסמל את התו / בסוגר של HTML.
בהצלחה !