RegExp در JS چیست؟
کلمه RegExp، مخفف عبارت Regular Expressions به معنای عبارات با قاعده، است.
عبارت با قاعده، دنباله ای از کاراکترها است که یک الگوی جستجو را تشکیل می دهد.
وقتی داده ها را در نوشتاری جستجو می کنیم، می توانیم از این الگوی جستجو برای توصیف آنچه جستجو می کنیم، استفاده کنیم.
یک عبارت با قاعده، می تواند یک کاراکتر یا یک الگوی پیچیده تر باشد.
الگوی جستجو را می توان برای جستجوی متن و عملیات جایگزینی متن استفاده کرد.
سینتکس:
/pattern/modifiers;
/pnldev/i;
در مثال بالا:
- /pnldev/i یک عبارت با قاعده است. (regular expression)
- pnldev یک الگو (برای استفاده در جستجو) است. (pattern)
- i یک اصلاح کننده است که جستجو را تغییر می دهد تا به حروف کوچک و بزرگ حساس باشد. (modifier)
استفاده از متدهای رشته
در JavaScript، عبارات با قاعده اغلب با 2 متد رشته ای استفاده می شوند:
- متد ()search: از یک عبارت برای جستجوی مطابقت استفاده می کند و موقعیت مطابقت را برمی گرداند.
- متد ()replace: یک رشته اصلاح شده را برمی گرداند که در آن الگو جایگزین می شود.
استفاده از متد ()search با یک رشته
متد ()search، یک رشته را برای یک مقدار مشخص، جستجو می کند و موقعیت مطابقت را برمی گرداند:
let text = "Visit PNLdev!";
let n = text.search("PNLdev");
استفاده از متد ()search با یک عبارت با قاعده
let text = "Visit PNLdev";
let n = text.search(/PNLdev/i);
استفاده از متد ()replace با یک رشته
متد ()replace، یک مقدار مشخص شده را با مقدار دیگری در یک رشته، جایگزین می کند:
let text = "لطفا از W3School دیدن کنید!";
let result = text.replace("W3School", "PNLdev");
استفاده از متد ()replace با یک عبارت با قاعده
let text = "لطفا از W3School دیدن کنید!";
let result = text.replace(/w3school/i, "PNLdev");
نکته: از آرگومان های عبارت با قاعده (به جای آرگومان های رشته) می توان در متد های بالا استفاده کرد.
نکته: عبارات با قاعده می توانند جستجوی ما را بسیار قدرتمندتر کنند. (به عنوان مثال، به حروف کوچک و بزرگ حساس نیستند.)
اصلاح کننده های عبارت با قاعده
از اصلاح کننده ها می توان برای انجام جستجوهای جهانی حساس به حروف کوچک و بزرگ استفاده کرد:
اصلاح کننده ها | توضیحات | آزمایشگاه |
i |
با تغییر المان توسط کاربر، اجرا می شود. اغلب در المان select کاربرد دارد. |
|
g | با کلیک روی المان توسط کاربر، اجرا می شود. | |
m |
به محض ورود ماوس به محدوده المان توسط کاربر، اجرا می شود. اولویت بیشتری نسبت به onmouseover دارد. |
|
d |
به محض ورود ماوس به محدوده المان توسط کاربر، اجرا می شود. اولویت بیشتری نسبت به onmouseover دارد. |
خلاصه درس