این آموزش در تاریخ ۱۳۹۹/۱۱/۲۵ آپدیت شده است.

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

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

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

Free-Learn

عبارات با قاعده در زبان جاوا اسکریپت

عبارات با قاعده یا به انگلیسی Regular Expressions ، بطور کلی به اون قوانین ( یا قاعده ) که ما در هنگام جستجو در یک متن / رشته تعریف میکنیم گفته میشه.

بفرض مثال من میخوام یک کلمه رو در یک ( جمله یا کلمه ) دیگر جستجو کنم، اینجاست که ما با استفاده از همین عبارات با قاعده در زبان جاوا اسکریپت میتونیم تعریف یا مشخص کنیم که مثلا این جستجو، حساس به حروف کوچک و بزرگ باشه یا نباشه و…

اگه زبان HTML و صفات این زبان رو دنبال کرده باشید میدونید که ما یه صفت داریم به اسم Pattern ( به فارسی یعنی الگو ) کاره این صفت یجورایی شبیه به همین جریان عبارات با قاعده هست.

یعنی با استفاده از اون صفت میتونیم مشخص کنیم که کاربر چجور داده هایی رو درون Input ها وارد کنه، بفرض مثال میگیم کاربر فقط میتونه ۵ حرف و اونم فقط باید حروف بزرگ انگلیسی وارد کنه. ( آموزش صفت Pattern و مثال هاشو حتما مشاهده نمایید )

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

Free-Learn

شکل نوشتاری عبارات با قاعده

نحوه نوشتن یا استفاده یا سینتَکس (Syntax) یک عبارت با قاعده در جاوااسکریپت بصورت زیر می باشد.

  • Pattern : اون عبارت یا الگو یا هر چیزی که قراره در یک متن دیگه جستجو شه
  • Modifier : اون اصلاح کننده یا درکل اون قانون ما برای نحوه جستجو زدن

برای استفاده از چندین اصلاح کننده بصورت همزمان، کافیه اصلاح کنندگان رو در کنار همدیگه قرار بدیم. [ توجه : نباید هیچ فاصله ای بین اصلاح کنندگان وجود داشته باشد ]

Free-Learn

معرفی متدهای پراستفاده با عبارات با قاعده

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

ما در این آموزش ، بیشتر از متد ()match در مثال های آنلاین استفاده کردیم.

نام متد توضیح مثال
()search برای جستجو کردن در یک متن
( شماره ایندکس یا جایگاه متن جستجو شده رو برمیگردونه )
مثال
()replace برای جستجو و جایگزین کردن یک متن مثال
()match برای جستجو کردن در یک متن
( خوده متن جستجو شده رو برمیگردونه )
مثال

Free-Learn

نحوه تعریف یک عبارت باقاعده

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

  1. در قالب یک متغیر یا عبارت ساده بدون اصلاح کننده
  2. در قالب یک متغیر یا عبارت ساده بهمراه اصلاح کننده
  3. در قالب یک شئ بدون اصلاح کننده
  4. در قالب یک شئ بهمراه اصلاح کننده
  5. بصورت مستقیم در متدها ( مثلا در متد match ) ( در این آموزش از این روش استفاده شده )

در قالب یک متغیر یا عبارت ساده بدون اصلاح کننده

امتحان کنید

در قالب یک متغیر یا عبارت ساده بهمراه اصلاح کننده

امتحان کنید

در قالب یک شئ بدون اصلاح کننده

امتحان کنید

در قالب یک شئ بهمراه اصلاح کننده

امتحان کنید

بصورت مستقیم در متدها ( مثلا در متد match )

امتحان کنید

Free-Learn

اصلاح کننده ها یا Modifiers در عبارات با قاعده

اصلاح کننده یا به انگلیسی Modifier بطور کلی به اون قانون یا قاعده ما برای نحوه جستجو زدن می باشد، مثلا ما یه اصلاح کننده داریم به نام i ( آی انگلیسی کوچک ) این میگه آقا جستجو به حروف کوچک و بزرگ انگلیسی حساس نباشه، خب این یعنی چی؟!

فرض میکنیم میخوایم کلمه free رو در جمله my site is Free-Learn جستجو بزنیم، خب اگه توجه کنید در کلمه free حرف f با حروف کوچک هست و دوباره در جمله اصلی همون حرف با حروف بزرگ هست.

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

نام اصلاح کننده توضیح مثال
i برای اینکه جستجو به حروف کوچک و بزرگ حساس نباشد مثال
g برای اینکه جستجو در کل متن انجام شود
( یعنی از حرف اول تا حرف آخر جمله )
مثال
m برای اینکه جستجو در چندین خط ( سطر ) انجام شود مثال
[abc] اون متنی که در براکت وجود دارد رو در کل متن جستجو میزنه مثال
[a-z] جستجو از یک حرف خاص تا یک حرف خاص دیگر مثال
[abc^] همه ی متن رو جستجو میزنه بجز اونی که در براکت وجود دارد مثال
[۱۲۳] اون اعدادی که در براکت وجود دارد رو در کل متن جستجو میزنه مثال
[۱-۹] جستجو از یک عدد خاص تا یک عدد خاص دیگر مثال
[۰-۹^] همه اعداد رو جستجو میزنه بجز اونی که در براکت وجود دارد مثال
(x|y) برای جستجو زدن چندین کلمه بصورت همزمان
( باید کلمات رو با | از همدیگه جدا کرد )
مثال
d\ برای جستجو زدن فقط اعداد مثال
s\ برای جستجو زدن فقط فضاهای خالی ( خط فاصله ها ) مثال
b\ برای جستجو اگه در ابتدای یک کلمه یا در انتهای یک کلمه باشد
برای در انتها
[کلمه مورد نظر]\b
برای در ابتدا
\b[کلمه مورد نظر]
مثال ۱
مثال ۲
B\ برای جستجو اگه در ابتدای یک کلمه یا در انتهای یک کلمه نباشد
برای در انتها
[کلمه مورد نظر]\B
برای در ابتدا
\B[کلمه مورد نظر]
مثال ۱

مثال ۲
xxx\ برای جستجوی یک کاراکتر با کد اُکتال ( Octal ) مثال
xdd\ برای جستجوی یک کاراکتر با کد هگزادسیمال ( HexaDecimal ) مثال
udddd\ برای جستجوی یک کاراکتر یونیکد ( Unicode ) با کد هگزادسیمال مثال
+n برای جستجوی یک حرف / کلمه که شامل حداقل یک عدد n باشد
( بجای n هر حرف یا کلمه ای میتونه قرار بگیره )
مثال
*n برای جستجوی یک حرف / کلمه که شامل هیچ یا بیشتر از یک عدد n باشد
( بجای n هر حرف یا کلمه ای میتونه قرار بگیره )
مثال
?n برای جستجوی یک حرف / کلمه که شامل هیچ یا حداقل یک عدد n باشد
( بجای n هر حرف یا کلمه ای میتونه قرار بگیره )
مثال

Free-Learn

متد های شئ برای عبارات با قاعده

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

عبارات با قاعده یا همون Regular Expression یه چندتا مُتد مخصوص بخودشون دارند، که میتونیم با استفاده از اونها مثلا کارای تستی بروی رشته ها انجام بدیم.

نام متد توضیح مثال
()exec برای تست مطابقت داشتن یک رشته
( اولین رشته ای که مطابقت داشته باشه رو برگشت میده )
مثال
()test برای تست مطابقت داشتن یک رشته
( یک مقدار true یا false برگشت میده )
مثال
()toString مقدار رشته ای یک عبارت باقاعده رو برگشت میده مثال

Free-Learn

مثال های بیشتر

مثال شماره ۱ : فقط حروف فارسی بتونه وارد شه ( روش اول )

امتحان کنید

مثال شماره ۲ : فقط حروف فارسی بتونه وارد شه ( روش دوم ) ( استانداردتر ) ( استفاده از یونیکد )

  • یعنی همون آ [الف], ب, پ و.. هستند فقط اینها بصورت کد هگزادسیمال هستند

امتحان کنید

مثال شماره ۳ : فقط اعداد فارسی بتونه وارد شه

امتحان کنید

مثال شماره ۴ : فقط اعداد فارسی و حروف فارسی و حروف بزرگ یا کوچک انگلیسی از a تا f میتونه وارد شه ( یعنی استفاده از چندین محدود کننده ) ( باید بین هر یک از محدود کننده ها یک | قرار داد )

امتحان کنید

Free-Learn

دریافت PDF یا پرینت این مطلب