هیچ دوره ای در سبد آموزش شما وجود ندارد
عبارت منظم و شی RegExp در جاوا اسکریپت
صفحه نخستعبارت منظم (RegExp) شیء ای است که الگوی کاراکترها را توضیح می دهد.
کلاس RegExp جاوا اسکریپت، عبارت منظم را نمایش میدهد و String و RegExp متدهایی را تعریف می کند که برای اجرای جستجو و جایگزینی و تطبیق الگوی توابع در متن از عبارت منظم استفاده می کنند.
سینتکس:
یک عبارت منظم توسط سازنده RegExp () بصورت زیر تعریف می شود:
var pattern = new RegExp(pattern, attributes); or simply var pattern = /pattern/attributes;
تعریف پارامترها:
- الگو: رشته ای که الگوی عبارت منظم یا عبارات منظم دیگر را تعیین می کند.
- ویژگی: یک رشته اختیاری حاوی ویژگی های “g” “i” و “m” که به ترتیب تطابیق چند خطی، حساس به حروف و سراسری را تعیین می کند.
کروشه ها
کروشه ها ([]) وقتی در متن عبارت منظم قرار میگیرند معنی خاصی دارند. از آنها برای پیدا کردن محدوده کاراکترها استفاده می شود.
شماره | عبارت و توضیحات |
۱ | […]هر کاراکتر بین کروشه ها. |
۲ | [^…]هر کاراکتری که بین کروشه ها نیست. |
۳ | [۰-۹]ارقام اعشاری بین ۰ تا ۹. |
۴ | [a-z]کاراکترهایی با حروف کوچک از a تا z. |
۵ | [A-Z]کاراکترهایی با حروف بزرگ از A تا Z. |
۶ | [a-Z]کاراکترهایی از حروف کوچک a تا حروف بزرگ Z. |
محدوده هایی که در بالا نشان داده شد کلی هستند. باید بتوانید از محدوده [۰-۳] برای تطبیق ارقام اعشاری بین ۰ تا ۳ یا [b-v] برای تطبیق هر کاراکتر با حروف کوچک در محدوده b تا v نیز استفاده کنید.
کوانتومی ها (کمیت سنج)
فرکانس یا موقعیت توالی کاراکترهای داخل کروشه و کاراکترهای انفرادی می تواند توسط کاراکترهای خاص تفکیک شود. هر کاراکتر خاص دارای یک ویژگی خاص است. نشانه های The +, *, ?, و $ همه از یک ترتیب کاراکتر پیروی می کنند.
شماره | عبارت و توضیحات |
۱ | p+هر رشته ای حاوی یک یا چند p را منطبق می کند. |
۲ | p*هر رشته حاوی صفر یا تعداد بیشتر p منطبق می کند. |
۳ | p?هر رشته حاوی حداکثر یک p را منطبق می کند. |
۴ | p{N}هر رشته حاوی یک توالی N p را منطبق می کند. |
۵ | p{2,3}هر رشته حاوی یک توالی دو یا سه p را منطبق می کند. |
۶ | p{2, }هر رشته حاوی یک توالی باحداقل دو p را منطبق می کند. |
۷ | p$هر رشته با p در پایان آن را منطبق می کند. |
۸ | ^pهر رشته با p در آغاز آن را منطبق می کند. |
مثال
مثال های زیر بیشتردرمورد تطبیق کاراکترها توضیح می دهد:
شماره | عبارت و توضیحات |
۱ | [^a-zA-Z]هر رشته که حاوی کاراکترهای محدوده بین a تا z و A تا Z نباشد را منطبق می کند. |
۲ | p.pهررشته حاوی p که به جای دنبال شدن توسط یکp دیگر، توسط هر کاراکتر دنبال می شود. |
۳ | ^.{۲}$هر رشته حاوی دقیقا دو کاراکتر. |
۴ | <b>(.*)</b>هر رشته که در <b> و </b> محصور شده باشد. |
۵ | p(hp)*هر رشته حاوی یک p که توسط صفر یا موارد بیشتر از توالی hp دنبال شود. |
کاراکترهای حرفی (Literal)
شماره | عبارت و توضیحات |
۱ | Alphanumeric (حرفی عددی)عبارتی که شامل حروف و عدد باشد. |
۲ | \۰کاراکتر تهی (\u0000) |
۳ | \tتب (\u0009) |
۴ | \nخط جدید (\u000A) |
۵ | \vتب عمودی (\u000B) |
۶ | \fتغذیه فرم (\u000C) |
۷ | \rبازگشت سر سطر (\u000D) |
۸ | \xnnکاراکترهای لاتین که توسط اعداد برمبنای ۱۶ nn معین می شود. برای مثال \x0Aمعادل \n است. |
۹ | \uxxxxکاراکتر های یونیکدی که توسط اعداد برمبنای ۱۶ معین می شوند. به عنوان مثال \u0009 معادل \t است. |
۱۰ | \cXکاراکترهای کنترلی ^X، به عنوان مثال \cJ معادل است با \n. |
متا کاراکترها
متاکاراکتر یک کاراکتر الفبایی است که قبل از یک بک اسلش (\) قرار گرفته و به ترکیب معنی خاصی می دهد.
به عنوان مثال، می توانید جمع مبلغ زیادی پول را با استفاده از متاکاراکتر ‘\d’ جستجو کنید: /([\d]+)000/
در اینجا \d هر رشته ای از کاراکترهای عددی را جستجو می کند.
در جدول زیر مجموعه ای از متاکاراکترهایی که در عبارات منظم PERL Style استفاده می شود آمده است:
شماره | کاراکترها و توضیحات |
۱ | .یک کاراکتر انفرادی |
۲ | \sیک کاراکتر فضای خالی (فاصله، تب ، خط جدید) |
۳ | \Sکاراکتر های به جز فضای خالی. |
۴ | \dیک عدد (۰-۹) |
۵ | \Dکاراکتر غیر عددی |
۶ | \wیک کاراکتر حرفی (a-z, A-Z, 0-9, _) |
۷ | \Wکاراکتر غیر حرفی |
۸ | [\b]یک backspace حرفی |
۹ | [aeiou]انطباق یک کاراکتر انفردادی در مجموعه داده شده. |
۱۰ | [^aeiou]انطباق یک کاراکتر انفرادی بیرون از مجموعه داده شده. |
۱۱ | (foo|bar|baz)انطباق هر گزینه معین شده. |
تعدیل کننده ها
چندین تعدیل کننده وجود دارد که می تواند کار شما با regexpها را راحت کند، مثل حساسیت به حروف کوچک و بزرگ، جستجو در خطوط چندگانه و غیره.
شماره | تعدیل کننده و توضیحات |
۱ | iحساسیت به حروف کوچک یا بزرگ را اجرا می کند. |
۲ | mمعین می کند که رشته دارای کاراکترهای خط جدید یا بازگشت سرسطر است. عملگرهای ^ و $حالا به جای مرز رشته با مرز خط جدید مطابقت دارند. |
۳ | gیک انطباق سراسری اجرا می کند. به جای توقف بعد از اولین انطباق، تمام مطابقت ها را پیدا می کند. |
ویژگی های RegExp
در ادامه لیست ویژگی های مربوط به RegExp به همراه توضیحات آن آمده است:
شماره | ویژگی و توضیحات |
۱ | Constructorتابعی که نمونه اولیه شیء را ایجاد می کند، معین می کند. |
۲ | Globalمشخص می کند که آیا تعدیل کننده “g” تنظیم شده یا نه. |
۳ | ignoreCaseمشخص می کند که آیا تعدیل کننده “i” تنظیم شده یا نه. |
۴ | lastIndexشاخصی برای شروع انطباق بعدی. |
۵ | Multilineمشخص می کند که آیا تعدیل کننده “m” تنظیم شده یا نه. |
۶ | Sourceمتن الگو |
در بخش های بعد برای توضیح کاربرد ویژگی های RegExp مثال هایی عنوان خواهد شد.
متدهای RegExp
در ادامه لیستی از متدهای RegExp به همراه توضیح قرار دارد:
شماره | نام متد و توضیحات |
۱ | exec()برای انطباق پارامترهای رشته جستجو انجام می دهد. |
۲ | test()در پارامترهای رشته یک انطباق تست می کند. |
۳ | toSource()یک حرف شیء به نمایندگی از شیء معین شده را باز می گرداند. می توانید از این مقدار برای ایجاد یک شیء جدید استفاده کنید. |
۴ | toString()به نمایندگی از شیء معین شده یک رشته باز میگرداند. |
در بخش های بعد برای اثبات کاربرد مدهای RegExp مثال هایی عنوان خواهد شد.