سرفصل‌های آموزشی
آموزش رگیولار اکسپرشن
آشنایی با نحوهٔ استفاده از علائم {} در RegEx

آشنایی با نحوهٔ استفاده از علائم {} در RegEx

در آموزش گذشته، دیدیم که به چه شکل می‌توان از علائم [] به منظور مشخص کردن طیفی از کاراکترها استفاده نمود؛ بر همین منوال، اگر بخواهیم تا رِجِکس مد نظرمان فقط و فقط اعداد را شامل شود، می‌توان از مثال زیر استفاده کرد:

var string = "7";
var regex = /[0-9]/;
string.match(regex);

و یا به عنوان راه‌کاری اصولی‌تر، می‌توان از دستور d\ به صورت زیر استفاده نمود:

var string = "7";
var regex = /\d/;
string.match(regex);

دستور d برگرفته از کلمهٔ Digit است و در مواقعی به کار می‌رود که بخواهیم فقط و فقط اعداد را قبول کنیم. حال فرض کنیم که قصد داریم رِجِکسی بنویسیم که شماره تلفن همراه را چک کند که برای این منظور خواهیم داشت:

var string = "09127771111";
var regex = /\d\d\d\d\d\d\d\d\d\d\d/;
string.match(regex);

در واقع،‌ از آنجا که یک شمارهٔ‌ همراه می‌باید حاوی یازده بخش باشد،‌ d\ را یازده بار تکرار کرده‌ایم اما در عین حال این روش کمی غیراصولی به نظر می‌رسد به طوری به صورت زیر می‌توان آن را بهبود بخشید:

var string = "09127771111";
var regex = /\d{11}/;
string.match(regex);

همان‌طور که ملاحظه می‌شود، از علائم {} استفاده نموده و تعداد مد نظر خود را داخل آن درج نموده‌ایم. با این تفاسیر، اگر کاربری پیدا شود که شمارهٔ‌ تلفن همراهی حاوی ده کاراکتر درج کند، این رِجِکس مَچ نخواهد شد و مقدار null را باز خواهد گرداند. در تکمیل این موضوع،‌ ذکر این نکته لازم است که می‌توانیم طیفی از تعداد کاراکتر را نیز به صورت زیر در نظر بگیریم:

var string = "12345";
var regex = /\d{5,11}/;
string.match(regex);

همان‌طور که ملاحظه می‌شود، داخل علائم {} ابتدا عدد ۵ را نوشته سپس علامت , را درج نموده و در نهایت عدد ۱۱ را درج نموده‌ایم.

    نکته

توجه داشته باشیم که مابین اعداد مذکور و علامت کاما نمی‌باید هیچ گونه فاصله‌ای وجود داشته باشد.

این رِجِکس اجازه می‌دهد که کاربر شماره تلفنی حاوی ۵ یا ۱۱ عدد را وارد کند و هر چیزی به جز این دو بازه مردود خواهد بود. همچنین اگر بخواهیم رِجِکسی بنویسیم که اعداد را شامل نشود، می‌توان از دستور D\ به صورت زیر استفاده نمود:

var string = "a";
var regex = /\D/;
string.match(regex);

این رِجِکس با هر چیزی به جز اعداد مَچ خواهد شد (به عنوان راه‌کاری جایگزین، از ساختیار /[d\^]/ نیز می‌توان استفاده نمود با این توضیح که علائم d\ با کلیهٔ اعداد ۰ تا ۹ مَچ خواهند شد اما درج علامت ^ پیش از آن‌ها نتیجه را عکس می‌سازد؛ به عبارتی،‌ دستور داده‌ایم هر چیزی به جز اعداد شامل گردد.)

پیش از این با علائم w\ و d\ آشنا شدیم که به ترتیب برای هدف قرار دادن حروف و اعداد مورد استفاده قرار می‌گیرند. در همین ارتباط، علامت دیگری نیز تحت عنوان s\ وجود دارد که اِسپیس،‌ تَب و خطوط جدید را در بر می‌گیرد به طوری که برای مثال داریم:

var string = "  ";
var regex = /\s/;
string.match(regex);

همچون روال گذشته، S\ هم هر چیزی که اِسپیس نباشد را شامل می‌گردد.

online-support-icon