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

آموزش جاوا اسکریپت - شئ RegExp و عبارت منظم

regular expression (عبارت منظم) شئ می باشد که یک الگوی شخصیت را توصیف می کند.

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

دستور نگارش (syntax)

regular expression می تواند با سازنده  RegExp ()تعریف شود.

var pattern = new RegExp(pattern, attributes);

or simply

var pattern = /pattern/attributes;

در زیر شرح پارامترها قرار دارد:

  • Pattern: رشته ای که الگوی عبارات منظم یا یکی دیگر از عبارات منظم را مشخص می کند.
  • Attributes: یک رشته اختیاری حاوی هر کدام از ویژگی های " "g، i" "و "m" که به ترتیب جهانی، حساس به حروف بزرگ و کوچک و چند خطی را مشخص می کند.

 

براکت ها

براکت ها ([ ]) در زمان استفاده در عبارات منظم استفاده کنید. آنها برای یافتن طیف وسیعی از کاراکتر ها استفاده می شوند.

Expression

شرح

[...]

هر کاراکتر در بین براکت ها می باشد.

[^...]

هر کاراکتر در بین براکت ها نمی باشد.

[0-9]

با تمام ارقام میان 0 تا 9 مطابقت دارد.

[a-z]

با تمام حروف کوچک میان a تا z مطابقت دارد.

[A-Z]

با تمام حروف بزرگ میان A تا Z مطابقت دارد.

[a-Z]

با تمام حروف میان  aتا Z مطابقت دارد.

 محدوده نشان داده شده در بالا به طور کلی می باشد؛ شما همچنین می توانید محدوده [0-3] را برای مطابقت با هر رقم دسیمال از 0 تا 3 یا محدوده [b-v] برای هر کاراکتر کوچک با دامنه b از طریق v استفاده کنید.

 

Quantifierها

فرکانس یا موقعیت توالی کاراکترها و کاراکترهای تک با یک کاراکتر خاص ممکن است نشان داده شود. هر یک از کاراکترهای خاص دارای خاصیت خاصی می باشند. تمامی  پرچم های + ، * ،؟ و $ توالی کاراکتر هارا دنبال می کنند.

Expression

شرح

p+

هر رشته دارای یک یا چند p را مطابقت می دهد.

p*

هر رشته دارای صفر یا چند p را مطابقت می دهد.

p?

هر رشته دارای  یک p را مطابقت می دهد.

p{N}

هر رشته دارای  توالی N تا p را مطابقت می دهد.

p{2,3}

هر رشته دارای دو یا سه p را مطابقت می دهد.

p{2, }

هر رشته  با حداقل دو p را مطابقت می دهد.

p$

هر رشته ای را که  با p  در پایان یابد را مطابقت می دهد.

^p

هر رشته ای را که با  p  آغاز شود را مطابقت می دهد.

 

مثال ها

مثال های زیر بیش تر رابطه کاراکترها را مطابقت می دهد.

Expression

شرح

[^a-zA-Z]

هر رشته ای را که دارای کاراکتر های رنج a تا z و A تا  Z نمی باشد مطابقت می دهد.

p.p

رشته شامل p که  توسط کاراکتر های p دیگری دنبال می شود را مطابقت می دهد.

^.{2}$

هر رشته که دقیقا دارای دو کاراکتر می باشند را مطابقت می دهد.

<b>(.*)</b>

هر رشته ار را که درون <b> و </b> قرار دارد را مطابقت می دهد.

p(hp)*

رشته شامل p که  توسط صفر یا نمونه بیشتری از توالی hpدنبال می شود را مطابقت می دهد.

 

کاراکتر های literal

کاراکتر

شرح

Alphanumeric

خودش

کاراکتر NUL  (u0000)

t

یک تب فاصله  (u0009)

n

خط جدید (u000A)

v

تب عمودی (u000B)

f

از feed (u000C)

r

سر سطر رفتن (u000D)

xnn

کاراکتر لاتین با nn عدد هگزادسیمال مشخص شده است؛ برای مثلا x0A برابر با n می باشد.

uxxxx

کاراکتر یونیکد توسط xxx تعداد هگزادسیم تعیین می شود؛ برای مثال u0009 برابر با t می باشد.

cX

کاراکتر کنترل  ^X ؛ به عنوان مثال، cJ برابر با کاراکتر خط جدید    n می باشد

 

کاراکترهای Meta یا Metacharacters

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

به عنوان مثال، می توانید جمع کل مبلغ پول را با استفاده از metacharacter 'd' جستجو کنید: /([d]+)000/ ، در اینجا d هر رشته با کاراکتر عددی (numerical character) را جستجو می کند.

در جدول زیر مجموعه ای از metacharacter ها لیست شده که می توانند در PERL Style Regular Expressions استفاده شوند.

کاراکتر

شرح

.

یک کاراکتر

s

کاراکتر فضای خالی (فضا، تب، خط جدید)

S

بدون کاراکتر فضای خالی

d

رقم (0-9(

D

بدون رقم

w

کاراکتر کلمه ( a-z، A-Z، 0-9، _)

W

بدون کاراکتر کلمه

[b]

یک عقبگرد literal (مورد خاص(

[aeiou]

یک کاراکتر تک در مجموعه داده شده را مطابقت می دهد.

[^aeiou]

یک کاراکتر خارج از مجموعه داده شده را مطابقت می دهد.

(foo|bar|baz)

هر یک از گزینه های مشخص را مطابقت می دهد.

 

Modifierها

چند  modifier  (اصلاح کننده) در دسترس هستند که می توانند روش کار با regexps را ساده تر کنند، مانند حساسیت به حروف کوچک و بزرگ، جستجو در چند خط و غیره.

Modifier

شرح

i

تطبیق حساسیت به حروف کوچک و بزرگ (case-insensitive) را انجام دهید.

m

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

g

یک تطابق جهانی انجام می شود، تمامی مطابقت ها را پیدا می کند و بعد از یافتن اولین تطابق  توقف نمی کند.

 

خاصیت های RegExp

در زیر لیستی از خاصیت های RegExp شرح داده شده است.

خاصیت

شرح

constructor

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

global

مشخص می کند که آیا modifier "" g  تنظیم شده است.

ignoreCase

مشخص می کند که آیا modifier ""i  تنظیم شده است.

lastIndex

شاخصی برای شروع تطابق بعدی می باشد.

multiline

مشخص می کند که آیا modifier "" m  تنظیم شده است.

source

متن الگو

در بخش های زیر چند مثال برای نشان دادن استفاده از خاصیت های RegExp خواهیم داشت.

 

متدهای RegExp

در زیر لیستی از متد های RegExp شرح داده شده است.

متد

شرح

exec()

جستجو برای یک تطابق را در پارامتر رشته انجام می دهد

test()

تست برای یک تطابق در پارامتر رشته آن است.

toSource()

شی literal را که نشان دهنده شی مشخص شده است، بازگرداند؛شما می توانید از این مقدار برای ایجاد یک شی جدید استفاده کنید.

toString()

رشته ای را نشان می دهد که شئ مشخص شده را بر می گرداند.

در بخش های زیر چند مثال برای نشان دادن استفاده از متد های RegExp خواهیم داشت.

در صورتی که سوال و یا نظری دارید، از بخش نظرات با ما در میان بگذارید.

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

شما چه نظر و یا سوالی درباره این نوشته دارید؟

مبحث آموزشی

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

Learn JavaScript

سرفصل ها

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

کلیک کنید و سوالات خود را از ما بپرسید
لطفا فرم سوال را پر کنید

سوال شما با موفقیت ثبت شد. برای اینکه بتوانیم به شما اطلاع رسانی کنیم، موارد زیر را وارد کنید:

لطفا چند لحظه منتظر بمانید ...