میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

عبارات منظم RegExp در جاوا اسکریپت

یک عبارت منظم (Regular Expressions) دنباله ای از کاراکترهاست که الگوی جستجو را تشکیل می دهند. این الگوی جستجو را می توان برای جستجوی متن و عملیات جایگزینی متن استفاده کرد.

عبارت منظم چیست؟

یک عبارت منظم دنباله ای از کاراکترهاست که الگوی جستجو را تشکیل می دهند .

هنگام جستجوی داده ها در یک متن ، می توانید از این الگوی جستجو برای توصیف آنچه جستجو می کنید استفاده کنید.

یک عبارت منظم می تواند یک کاراکتر تکی یا یک الگوی پیچیده تر باشد.

عبارات منظم را می توان برای انجام انواع جستجوی متن و عملیات جایگزینی متن استفاده کرد.

نحو (سینتکس) عبارت منظم

/pattern/modifiers;

توضیح مثال فوق:

/coderschool.ir/i   یک عبارت منظم است.

coderschool.ir   الگویی است (برای استفاده در جستجو).

i  یک اصلاح کننده (modifier) است که حساسیت جستجو به حروف کوچک/بزرگ را غیرفعال می کند.

برای استفاده در توابع رشته ها

در جاوا اسکریپت، عبارات منظم اغلب با دو تابع رشته ای استفاده می شوند : search() و replace().

تابع search() برای جستجوی یک مطابقت از یک عبارت استفاده می کند و موقعیت عبارت یافت شده را برمی گرداند.

تابع replace() یک رشته اصلاح شده که در آن الگو پیدا شده و جایگزین شده، را برمی گرداند.

استفاده از string.search() برای یافتن یک رشته

تابع search() ، در درون رشته string ، مقدار داده شده را جستجو می کند و مکان آن را برمی گرداند.

مثال

از یک رشته برای یافتن کلمه “coderschool.ir” در آن استفاده کنید:

برای انجام یک جستجو که به حروف بزرگ/کوچک حساس نباشد و کلمه “coderschool.ir” را در یک رشته پیدا کند از یک عبارت منظم استفاده کنید:

۶

استفاده از تابع String.replace() برای جایگزینی یک رشته

تابع replace() مقدار ورودی را با یک مقدار جدید در رشته جایگزین می کند:

var str = “Visit coderschool.ir!”;
var res = str.replace(“Microsoft”“coderschool.ir”);

استفاده از عبارت منظم در تابع String.replace()

مثال

برای تعویض Microsoft با coderschool.ir در یک رشته، از یک عبارت منظم غیر حساس استفاده کنید:

Visit W3Schools!

آیا توجه کردید؟

عبارت های منظم (به جای رشته ها) می توانند بعنوان آرگومان ورودی در توابع فوق استفاده شوند.
عبارات منظم می توانند جستجوی شما را بسیار قدرتمندتر کنند (به عنوان مثال جستجوی غیر حساس به حروف بزرگ و کوچک).


اصلاح کننده (Modifier) های عبارت منظم

اصلاح کننده ها را می توان برای انجام جستجوهای غیر حساس و فراگیرتر، استفاده کرد:

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

الگوهای عبارت منظم

از کروشه یا براکت برای یافتن طیف وسیعی از کاراکتر ها استفاده می شود:

عبارتشرح
[abc]هر کاراکتری که در درون کروشه باشد پیدا می کند
[۰-۹]هر عددی که در بازه درون کروشه باشد پیدا می کند
(x|y)هر یک از گزینه های جدا شده با ” | ” را پیدا می کند

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

متاکاراکترشرح
\dیک عدد پیدا می کند
\sیک کاراکتر فضای خالی پیدا می کند
\b\bWORD عبارت مورد نظر را در اول کلمات جستجو می کند
یا
WORD\b عبارت مورد نظر را در آخر کلمات جستجو می کند
\uxxxxکاراکتر یونیکد مشخص شده با کد هگزادسیمال را پیدا می کند.

 

شمارشگرها تعداد را مشخص می کنند:

شمارشگرهاشرح
n+هر رشته ای را که حداقل یک n دارد، پیدا می کند.
n*هر رشته ای که ۰ یا بیشتر n دارد پیدا می کند.
n?هر رشته ای که ۰ یا ۱ عدد n دارد پیدا می کند.

استفاده از شیء عبارت منظم

در جاوا اسکریپت ، شیء (RegExp) یک شیء عبارت منظم با ویژگی ها و متد های از پیش تعریف شده است.

تابع عضو .test()

تابع .test() یک تابع عضو برای عبارت های منظم است.

این تابع رشته ای را برای یافتن یک الگو جستجو می کند ، و بسته به نتیجه، true یا false برمی گرداند.

مثال زیر رشته ای را برای کاراکتر “e” جستجو می کند:

var patt = /e/;
patt.test(“The best things in life are free!”);

لازم نیست ابتدا عبارت منظم را در یک متغیر قرار دهید. دو خط بالا را می توان بصورت زیر خلاصه کرد:

تابع عضو .exec()

تابع .exec() یک تابع عضو برای عبارت های منظم است.

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

اگر تطابقی پیدا نشد ، یک شیء خالی null را برمی گرداند .

مثال زیر رشته ای را برای یافتن کاراکتر “e” جستجو می کند:

/e/.exec(“The best things in life are free!”);

 

امیدواریم آموزش عبارات منظم RegExp در جاوا اسکریپت نیز برای شما مفید واقع شده باشد .برای مطالعه پست‌های بیشتر ، ما را در مدرسه کدنویسی تلگرام  و یا در تی جوان اینستاگرام دنبال کنید.

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟