آموزش جاوا اسکریپت – Regular Expression در جاوا اسکریپت ۲

آموزش جاوا اسکریپت

با بخش دوم از نحوه کار با Regular Expression در جاوا اسکریپت از سری آموزش جاوا اسکریپت خدمت شما عزیزان هستیم.

در قسمت اول موارد پایه و اساسی و نحوه استفاده متدهای مختلف در جاوا اسکریپت به منظور تطابق الگو ها را یاد گرفتیم. در ادامه قصد داریم مباحث باقی مانده از Regular Expression در جاوا اسکریپت را تکمیل کنیم.

 

شمارنده تکرار (Repetition Quantifiers)

در بخش قبلی نحوه تطابق یک کاراکتر تنها در انواع مختلف را دیدی اما چه می شد اگر قصد تطابق دو یا چند تا از یک کاراکتر را داشتید.

برای مثال فرض کنیم قصد دارید کلمات موجود در یک یا چند نمونه از حروف p یا کلمات شامل دو حروف p و .. پیدا کنید.

اینجاست که کوانتیزرها (Quantifiers) وارد بازی می شوند. با شمارنده ها شما به راحتی می توانید مشخص کنید که چندبار یک کاراکتر در عبارت باقاعده باید تطابق پیدا کند.

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

RegExp چه کار می کند
p+ Matches one or more occurrences of the letter p.
p* Matches zero or more occurrences of the letter p.
p? Matches zero or one occurrences of the letter p.
p{2} Matches exactly two occurrences of the letter p.
p{2,3} Matches at least two occurrences of the letter p, but not more than three occurrences.
p{2,} Matches two or more occurrences of the letter p.
p{,3} Matches at most three occurrences of the letter p

مثال Regular Expression زیر  رشته ها در کاما, توالی کاماها, فاصله خالی یا ترکیب از آنها را با متد split() در جاوا اسکریپت جدا می کند.

 

لنگرگاه موقعیت (Position Anchors)

موقعیت های خاصی هستند که می خواهید اول یا اخر یک خط, کلمه, یا رشته را تطابق کنید. برای اینکار می توانید علامت ^ برای شروع رشته و $ برای پایان رشته استفاده کنید.

عبارت باقاعده در مثال زیر فقط نام هایی در آرایه نام ها را با متد test() در جاوا اسکریپت انتخاب می کند که شروع آنها با J شروع شده باشد.

 

اصلاح کننده الگو (Pattern Modifiers)

یک modifier به شما اجازه می دهد که نحوه تطابق الگو را کنترل کنید. Modifier ها مستقیما بعد از عبارات باقاعده قرار می گیرند.

برای مثال, اگر قصد جستجوی یک الگو بصورت غیرحساس به حروف کوچک و بزرگ هستید, می توانید از i بصورت /pattern/i استفاده کنید.

Modifier چه کار می کند
g Perform a global match i.e. finds all occurrences.
i Makes the match case-insensitive manner.
m Changes the behavior of ^ and $ to match against a newline boundary (i.e. start or end of each line within a multiline string), instead of a string boundary.
o Evaluates the expression only once.
s Changes the behavior of . (dot) to match all characters, including newlines.
x Allows you to use whitespace and comments within a regular expression for clarity.

مثال زیر به شما نحوه استفاده از i و g در عبارات باقاعده برای انجام یک جستجوی global سراسری و case-insensitive غیرحساس به حروف کوچک و بزرگ با متد match() را نشان می دهد:

مشابه بالا, این مثال نیز به شما نحوه تطابق در اول هر خط در هر رشته چندخطی با علامت ^ و فلگ m با متد match() با جاوا اسکریپت را نشان می دهد.

 

جایگزینی (Alternation)

Alternation به شما اجازه می دهد که یک نسخه جایگزین از یک الگو را مشخص کنید. Alternation در عبارات باقاعده مثل اپراتور OR در دستور شرطی if-else عمل می کند.

می توانید Alternation را با خط عمودی | مشخص کنید. برای مثال /fox|dog|cat/ رشته fox یا dog یا cat را مچ می کند.

نکته: Alternation از چپ به راست تا زمانی که یکی پیدا شود, ارزیابی می کند. اگر جایگزینی چپ پیدا شود, کل جایگزینی راست نادیده گرفته می شود حتی اگر پیدا شود.

 

گروه بندی (Grouping)

عبارات باقاعده از پارانتز برای گروه بندی مثل عبارات ریاضی استفاده می کند. پارانتزها به شما اجازه استفاده از شمارشگرهای تکرار را داخل خود عبارت اصلی را می دهد.

برای مثال در عبارت /go+/ شمارشگر + فقط روی آخرین کاراکتر که o است اعمال می شود و عبارت های go, goo  و … را پیدا می کند.

به هرحال, در عبارت باقاعده /(go)+/ شمارشگر + روی گروه کاراکترهای g و o اعمال می شود و رشته های go , gogo و.. را تطابق می دهد.

نکته: اگر رشته الگو موردنظر تطابق پیدا کند, متد match() یک آرایه شامل کل رشته های تطابق یافته را به عنوان المان اول برگشت می دهد. در غیر اینصورت null را برگشت می دهد

نکته ۲ : اگر عبارت باقاعده شامل فلگ g باشد, متد match() فقط یک آرایه شامل تمام رشته های مچ شده را به جای شیء مچ شده برگشت می دهد.

 

مرز کلمات (Word Boundaries)

یک کاراکتر مرز کلمات (\b) به شما کمک می کند که کلمه ای که با یک الگو شروع و/یا پایان می یابد.

برای مثال, عبارت باقاعده /\bcar/ کلمه ای که با الگوی car و شاید cart, cattor, cartoon را تطابق دهد اما Oscar را انتخاب نمی کند.

مشابه آن, عبارت باقاعده /car\b/ کلمه ای که با الگوی car و Oscar یا supercar را انتخاب اما cart را انتخاب نمی کند. همچنین /\bcar\b/ کلماتی که اول و آخر آنها car است را انتخاب می کند که تنها کلمه انتخابی car خواهد بود.

 

امیدواریم در این بخش آموزش جاوا اسکریپت, از قسمت آخر آموزش Regular Expression در جاوا اسکریپت نهایت استفاده را برده باشد.

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۱)

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

  1. محمود رنجبر نورآبادی ۱۴ بهمن ۱۴۰۰

    سلام مهندس شفیعی نازنین خدا قوت من آموزش آپلود عکس در ckeditor میخوام ولی فارسی هیچی پیدا نمیشه اگه براتون مقدور هست قرار بدین
    سپاس از راهنمایی تون موفق باشید

    پاسخ
دوره های آموزشی