JavaScript Regular Expressions

Regular Expression چیست؟

Regular Expression یک دنباله از کاراکترها می‌باشد که یک الگوی جستجو را شکل می‌دهند. زمانی که در داده‌ها به دنبال یک متن هستید، می‌توانید از این الگوی جستجو برای توصیف آنچه که به دنبالش هستید استفاده کنید. regular expression می‌تواند تنها یک کاراکتر و یا یک الگوی پیچیده باشد. از آن می‌توانید برای انجام انواع عملیات جستجوی متن و همچنین جایگزینی متن بهره ببرید. نحوه نوشتار آن در جاوا اسکریپت به شکل زیر است:

/pattern/modifiers;

توضیح: pattern الگویی است که به دنبال آن هستید و modifiers تغییر دهنده نحوه جستجو است. به عنوان مثال:

/Microsoft/i;

در کد بالا الگویی که به دنبال آن هستیم Microsoft است و با استفاده از تغییر دهنده i جستجو را نسبت به بزرگ و کوچک بودن حروف غیرحساس کرده‌ایم.

معمولاً در جاوا اسکریپت، regular expression را با دو تابع شیء رشته‌ای search() و replace() استفاده می‌کنند که در فصل توابع شیء رشته با آن‌ها آشنا شدیم.

Regular Expression Modifiers

تغییر دهنده توضیح
i مطابقت را نسبت به بزرگ و کوچک بودن حروف غیرحساس می‌کند.
g مطابقت را سراسری می‌کند. به این معنی که در اولین مطابقت متوقف نشده و تمام مواردی که مطابقت دارند را پیدا می‌کند.
m مطابقت چند خطی (multiline) را انجام می‌دهد.

Regular Expression Patterns

عبارت توضیح
[abc] هر یک از کاراکترهایی که داخل کروشه هستند را پیدا می‌کند.
[0-9] هر یک از اعدادی که داخل کروشه هستند را پیدا می‌کند.
(x|y) هر یک از گزینه‌های جدا شده با علامت | را پیدا می‌کند.

Metacharacter کاراکترهایی با معنای خاص هستند:

متا کاراکتر توضیح
d\ پیدا کردن یک رقم (digit)
s\ پیدا کردن یک فاصله خالی
b\ پیدا کردن یک مطابقت در اول یک کلمه: bWORD\، یا در آخر یک کلمه: WORD\b
uxxxx\ پیدا کردن کاراکتر یونیکد که توسط عدد هگزادسیمال xxxx مشخص شده است.

Quantifiers کمیت را تعیین می‌کنند:

Quantifier توضیح
+n مطابقت با هر رشته‌ای که حداقل شامل یک n باشد.
*n مطابقت با هر رشته‌ای که شامل صفر یا تعداد بیشتر n باشد.
?n مطابقت با هر رشته‌ای که شامل صفر و یا یک n باشد.

()test

test() یک تابع شیء RegExp است. در یک رشته بر اساس الگوی داده شده جستجو می‌کند و بر اساس نتیجه به دست آمده، true یا false را برمی‌گرداند.

const pattern = /e/;
pattern.test("The best things in life are free!");

کد بالا دنبال کاراکتر e در عبارت داده شده می‌گردد و از آنجا که این عبارت دارای این کاراکتر است پس نتیجه آن true خواهد بود.

()exec

exec() یک تابع شیء RegExp است. در یک رشته بر اساس الگوی داده شده جستجو می‌کند و متن پیدا شده را به صورت یک شیء برمی‌گرداند. اگر هیچ مطابقتی یافت نشود یک شیء خالی null را برمی‌گرداند.

برای دسترسی به رفرنس کامل regular expressions اینجا را کلیک کنید.