RegExp Methods

در جاوااسکریپت، RegExp Objects متدهایی دارن که برای جستجو و کار با متن استفاده میشن.
مهم‌ترین متدهاشون test() و exec() هستن.

🔹 1. متد test()

این متد بررسی می‌کنه که آیا یک الگو (Pattern) در رشته وجود داره یا نه.
نتیجه همیشه true یا false هست.

let regex = /hello/i; console.log(regex.test("Hello World")); // true console.log(regex.test("Hi there")); // false

🔹 2. متد exec()

این متد اولین تطبیق (match) رو برمی‌گردونه.
خروجی یک آرایه شامل نتیجه و اطلاعات اضافی هست.
اگر چیزی پیدا نشه → null برمی‌گردونه.

let regex = /o/; let result = regex.exec("Hello"); console.log(result);

📌 خروجی:

["o", index: 4, input: "Hello", groups: undefined]

🔹 تفاوت test() و exec()

  • test() فقط میگه هست یا نه (true/false).

  • exec() اطلاعات دقیق تطبیق رو میده (خود متن، index و …).


🔹 استفاده از پرچم g با exec()

وقتی از پرچم global (g) استفاده می‌کنیم، exec() هر بار تطبیق بعدی رو برمی‌گردونه.

let regex = /o/g; let text = "Hello World"; console.log(regex.exec(text)); // "o" در index 4 console.log(regex.exec(text)); // "o" در index 7 console.log(regex.exec(text)); // null

🔹 استفاده در متدهای String

علاوه بر متدهای مستقیم RegExp، متدهای String هم می‌تونن با RegExp کار کنن:

  • match()

  • matchAll()

  • search()

  • replace()

  • split()

let text = "I love cats and dogs"; // match() console.log(text.match(/cats|dogs/g)); // ["cats", "dogs"] // search() console.log(text.search(/dogs/)); // 12

✅ خلاصه

  • test() → نتیجه true/false برمی‌گردونه.

  • exec() → جزئیات اولین تطبیق رو میده.

  • با پرچم g میشه چندین بار exec() رو روی یک رشته اجرا کرد.

  • متدهای String مثل match() و replace() هم با RegExp کار می‌کنن.