Regular Expression Assertions

در جاوااسکریپت، Assertions در عبارات منظم (RegExp) برای بررسی شرط‌های خاص استفاده میشن، بدون اینکه بخشی از متن رو مصرف کنن.
دو دسته اصلی وجود داره:

  1. Anchors → مثل ^ و $ برای شروع و پایان متن

  2. Lookahead / Lookbehind → برای بررسی قبل یا بعد از یک الگو

🔹 Anchors

1. ^ → شروع رشته

console.log(/^Hello/.test("Hello World")); // true console.log(/^Hello/.test("World Hello")); // false

2. $ → پایان رشته

console.log(/World$/.test("Hello World")); // true console.log(/World$/.test("World Hello")); // false

🔹 Lookahead

3. (?=...) → مثبت (Positive Lookahead)

بررسی می‌کنه که بعد از متن، الگوی خاصی وجود داره.

let text = "JavaScript"; console.log(/Java(?=Script)/.test(text)); // true console.log(/Java(?=Code)/.test(text)); // false

4. (?!...) → منفی (Negative Lookahead)

بررسی می‌کنه که بعد از متن، الگوی خاصی وجود نداشته باشه.

let text = "JavaScript"; console.log(/Java(?!Script)/.test(text)); // false console.log(/Java(?!Code)/.test(text)); // true

🔹 Lookbehind (از ES2018 به بعد)

5. (?<=...) → مثبت (Positive Lookbehind)

بررسی می‌کنه که قبل از متن، الگوی خاصی وجود داشته باشه.

let text = "100USD"; console.log(/(?<=100)USD/.test(text)); // true console.log(/(?<=200)USD/.test(text)); // false

6. (?<!...) → منفی (Negative Lookbehind)

بررسی می‌کنه که قبل از متن، الگوی خاصی وجود نداشته باشه.

let text = "100USD"; console.log(/(?<!200)USD/.test(text)); // true console.log(/(?<!100)USD/.test(text)); // false

✅ خلاصه

  • ^ → شروع متن

  • $ → پایان متن

  • (?=...) → Positive Lookahead

  • (?!...) → Negative Lookahead

  • (?<=...) → Positive Lookbehind

  • (?<!...) → Negative Lookbehind

Assertions برای کنترل موقعیت یا شرط‌ها استفاده میشن، بدون اینکه بخشی از متن رو مصرف کنن.