متدهای RegExp (RegExp Methods)
در جاوااسکریپت، «متد (Method)» یعنی کاری آماده روی شیء. متدهای «RegExp» برای جستجو در متن هستند. نتیجه را یا بولین می دهند، یا آرایه تطبیق.
test()؛ فقط درست یا نادرست
متد «test()» روی رشته اجرا می شود. اگر الگو پیدا شود، «true» می دهد. در غیر این صورت، «false» می دهد.
const regex = /e/;
const text = "The best things in life are free!";
const found = regex.test(text);
exec()؛ جزئیات تطبیق
متد «exec()» شیء نتیجه برمی گرداند. این شیء متن تطبیق را نگه می دارد. اگر چیزی نبود، «null» می شود.
const regex = /e/;
const text = "The best things in life are free!";
const match = regex.exec(text);
lastIndex؛ شروع جستجوی بعدی
ویژگی «lastIndex» می گوید دفعه بعد از کجا بگردد. این با پرچم «g» یا «y» کاربردی است.
const regex = /o/g;
const text = "Hello World";
let first = regex.exec(text);
let startNext = regex.lastIndex;
let second = regex.exec(text);
flags، global، ignoreCase، multiline، sticky
ویژگی های «flags»، «global»، «ignoreCase»، «multiline»، «sticky» وضعیت پرچم ها را نشان می دهند. پرچم یعنی گزینه رفتاری برای جستجو.
const regex = /hello/gi;
const isGlobal = regex.global;
const isIgnore = regex.ignoreCase;
const allFlags = regex.flags;
source و toString()
«source» خود الگو را می دهد. «toString()» نمایش رشته ای همان الگو را می سازد.
const regex = /\d{3,4}/m;
const src = regex.source;
const shown = regex.toString();
escape()؛ ایمن سازی متن برای الگو
«RegExp.escape()» کاراکترهای خاص الگو را امن می کند. سپس می توانی متن کاربر را بی خطر در الگو بگذاری.
const userText = "[*]";
const safe = RegExp.escape(userText);
const regex = new RegExp(safe);
const ok = regex.test("[*] is here");
متدهای رشته با RegExp
رشته ها هم متد دارند: «match»، «matchAll»، «replace»، «replaceAll»، «search»، «split». این ها با الگو کار می کنند.
const text = "Hellooo World";
const hits = text.match(/lo+/g);
const pieces = text.split(/\s/);
const index = text.search(/World/);
نکته: برای آشنایی با اشیا، به اشیای RegExp (RegExp Objects) برو. الگوهای رایج را هم در الگوها (RegExp Patterns) ببین.
گام های تمرینی
- یک الگو ساده بساز.
- با «test()» وجودش را چک کن.
- با «exec()» جزئیات را بگیر.
- پرچم ها را با «flags» بررسی کن.
جمع بندی سریع
- test() نتیجه بولین می دهد.
- exec() شیء تطبیق می دهد.
- lastIndex شروع بعدی را تعیین می کند.
- escape() متن کاربر را ایمن می کند.