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

از ویکی کد
پرش به ناوبری پرش به جستجو
میانبر:
الگو:اصلاح جدول
دورهٔ آموزشی جاوااسکریپت
Javascript.jpg
جاوااسکریپت
موارد آموزشی
۱آموزش جاوااسکریپت
۲مقدمه‌ای بر جاوااسکریپت
۳قوانین و اصول اولیه زبان جاوااسکریپت
۴خروجی جاوااسکریپت
۵عبارت‌ها در جاوااسکریپت
۶شیوهٔ نوشتن دستورات در جاوااسکریپت
۷نظرات یا کامنت‌ها (Comments) در جاوااسکریپت
۸متغیرها در جاوااسکریپت
۹عملگرهای جاوااسکریپت
۱۰عملگرهای ریاضی در جاوااسکریپت
۱۱عملگرهای مقداردهی در جاوااسکریپت
۱۲انواع داده‌ها در جاوااسکریپت
۱۳توابع در جاوااسکریپت
۱۴اشیاء (object) در جاوااسکریپت
۱۵رویدادها در جاوااسکریپت
۱۶رشته‌های متنی (string) در جاوااسکریپت
۱۷متدهای نوع داده متنی یا رشته‌ای در جاوااسکریپت
۱۸اعداد در جاوااسکریپت
۱۹متدهای داده‌های عددی در جاوااسکریپت
۲۰آرایه‌ها در جاوااسکریپت
۲۱متدهای آرایه در جاوااسکریپت
۲۲مرتب‌سازی آرایه‌ها در جاوااسکریپت
۲۳متدهای پیمایش آرایه در جاوااسکریپت
۲۴اشیاء تاریخ و زمان در جاوااسکریپت
۲۵فرمت‌های تاریخ و زمان در جاوااسکریپت
۲۶متدهای دریافت تاریخ و زمان در جاوااسکریپت
۲۷متدهای تنظیم زمان و تاریخ در جاوااسکریپت
۲۸شی ریاضی (Math) در جاوااسکریپت
۲۹ایجاد عدد تصادفی در جاوااسکریپت
۳۰مقادیر بولین (Booleans) در جاوااسکریپت
۳۱عملگرهای منطقی و مقایسه‌ای در جاوااسکریپت
۳۲ساختار if else و else if در جاوااسکریپت
۳۳تکه کد Switch در جاوا اسکریپت
۳۴حلقه For در جاوااسکریپت
۳۵حلقه While در جاوااسکریپت
۳۶کلمات کلیدی Break و Continue در جاوااسکریپت
۳۷تبدیل نوع داده‌ها در جاوااسکریپت
۳۸عملیات‌های بیتی در جاوااسکریپت
۳۹عبارات با قاعده در جاوااسکریپت
۴۰خطاها در جاوااسکریپت - رخ دادن خطا و رفع آن
۴۱Scope در جاوااسکریپت
۴۲Hoisting یا جا به جایی کدها در جاوااسکریپت
۴۳استفاده از مد یا حالت سخت‌گیرانه (use strict) در جاوااسکریپت
۴۴کلمه کلیدی This در جاوااسکریپت
۴۵کلمه کلیدی Let در جاوااسکریپت
۴۶ثابت‌ها در جاوااسکریپت
۴۷تعریف توابع به صورت پیکان
۴۸کلاس‌ها در جاوااسکریپت
۴۹اشکال‌زدایی در جاوااسکریپت
۵۰راهنمای استایل و استانداردهای کدنویسی در جاوااسکریپت
۵۱بهترین تمرینات جاوااسکریپت
۵۲اشتباهات رایج در برنامه‌نویسی جاوااسکریپت
۵۳کارایی در جاوااسکریپت
۵۴کلمات رزرو شده در جاوااسکریپت
۵۵ورژن‌های جاوااسکریپت
۵۶ECMAScript 5 - JavaScript 5
۵۷ECMAScript 6 - ECMAScript 2015
۵۸جیسون (JSON) در جاوااسکریپت
فرم‌ها
۱فرم‌ها در جاوااسکریپت
۲API ارزشیابی در جاوااسکریپت
اشیاء (Object)
۱اشیاء در جاوااسکریپت
۲ویژگی‌های اشیاء در جاوااسکریپت
۳متدهای اشیاء در جاوااسکریپت
۴روش‌های دسترسی به شیء در جاوااسکریپت
۵سازنده‌های شیء در جاوااسکریپت
۶شکل اصلی شیء در جاوااسکریپت
۷متدهای شیء در ورژن ES5 جاوااسکریپت
تابع
۱تعریف تابع در جاوااسکریپت
۲پارامتر توابع در جاوااسکریپت
۳فراخوانی تابع در جاوااسکریپت
۴صدا کردن تابع در جاوااسکریپت
۵تابع Apply در جاوااسکریپت
۶بسته‌ها (به انگلیسی: Closures) در جاوااسکریپت
HTML DOM
۱HTML DOM در جاوااسکریپت
۲متدهای HTML DOM در جاوااسکریپت
۳HTML DOM Document در جاوااسکریپت
۴عناصر HTML DOM در جاوااسکریپت
۵reeeeeeeeeeeeeeee
۶تست
۷تست
۸تست
۹تست
۱۰تست
۱۱تست
۱۲تست
۱۳تست


یک عبارت با قاعده دنباله از کاراکتر هاست که یک الگوی جستجو را فراهم می‌کند. [۱]

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

عبارت با قاعده چیست؟

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

زمانی که شما در یک متن به دنبال داده یا Data هستید، شما می‌توانید از این الگوهای جستجو برای تعریف چیزی که به دنبال آن هستید استفاده کنید.

یک عبارت منطقی می‌تواند به صورت تک کاراکتری باشد یا ساختار پیچیده تری داشته باشد.

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

شیوهٔ نوشتار

/''pattern''/''modifiers'';

مثال

var patt = /w3schools/i;

توضیح مثال:

wikicod/i/ یک عبارت با قاعده است.

wikicod یک الگو است (که برای جستجو استفاده می‌شود).

i یک modifier است (که مشخص می‌کند جستجو می‌بایست حساس به حروف کوچک و بزرگ نباشد)

استفاده به همراه متدهای رشته متنی (به انگلیسی: String)

در جاوااسکریپت، عبارت‌های با قاعده معمولاً همراه با دو متد رشته‌های متنی استفاده می‌شوند: متد​search()​و​replace()​.

متد​search()​از عبارت با قاعده برای پیدا کردن نتیجه یک جستجو استفاده می‌کند، و موقعیت یا اندیس نتیجه را برمی‌گرداند.

متد​replace()​یک رشته متنی ویرایش شده را برمی‌گرداند که الگو در آن جایگزین شده‌است.

استفاده از تابع ()search رشته‌های متنی با یک رشته متنی

متد​search()​یک رشته متنی را برای پیدا کردن یک رشته متنی جستجو می‌کند و موقعیت یا اندیس نتیجه را برمی‌گرداند:

مثال

استفاده از یک رشته متنی برای پیدا کردن کلمه "Wikicod" در یک رشته متنی:

var str = "Visit W3Schools!";
var n = str.search("W3Schools");

استفاده از تابع ()search رشته‌های متنی با عبارت‌های با قاعده

مثال

استفاده از یک عبارت با قاعده برای جستجوی غیر حساس به حروف کوچک و بزرگ کلمه "Wikicod" در یک رشته متنی:

var str = "Visit Wikicod";
var n = str.search(/wikicod/i);

نتیجه متغیر n برابر خواهد بود با:

6

استفاده از متد ()replace با یک رشته متنی

متد​replace()​یک مقدار بهخصوص را با یک مقدار دیگر در یک رشته متنی جابه‌جا می‌کند:

var str = "Visit Microsoft!";
var res = str.replace("Microsoft", "Wikicod");

استفاده از تابع ()replace با یک عبارت باقاعده

مثال

استفاده از یک عبارت با قاعده غیر حساس به حروف کوچک و بزرگ برای جابه‌جایی کلمه Microsoft با کلمه Wikicodدر یک رشته متنی:

var str = "Visit Microsoft!";
var res = str.replace(/microsoft/i, "Wikicod");

مقدار متغیر Res برابر خواهد بود با:

Visit Wikicod!

آیا شما توجه کرده‌اید؟


Modifierهای عبارت‌های باقاعده

Modifier توضیحات
i جستجوی غیر حساس به حروف کوچک و بزرگ
g جستجوی کامل (تمامی نتایج را پیدا می‌کند حتی اگر اولین نتیجه یکسان را هم قبلاً پیدا کرده باشد)
m امکان پیدا کردن نتایج جستجو در چندین خط را فراهم می‌کند.

الگوهای عبارت‌های باقاعده

از براکت‌ها برای پیدا کردن محدوده ای از کاراکترها استفاده می‌شود:

عبارت توضیحات
[abc] تمام کاراکتر های بین براکت‌ها را پیدا می‌کند.
[۰-۹] تمام اعداد بین براکت‌ها را پیدا می‌کند.
(x|y) تمام گزینه های بین | را پیدا می کند.

متا کاراکترها، کاراکترهایی هستند که معنی خاصی می‌دهند:

متا کاراکتر توضیحات
\d یک عدد را پیدا می‌کند.
\s یک کاراکتر فاصله را پیدا می‌کند.
\b نتیجه را در ابتدای کلمه ای مانند \bword یا در پایان کلمه ای مانند word\b پیدا می‌کند.
\uxxxx کاراکتر unicode را که با یک عدد هگزا دسیمال مشخص شده‌است را پیدا می‌کند.

کمیت (به انگلیسی: Quantifiers)مقادیر را تعریف می‌کند:

عبارت توضیحات
n+ تمامی نتایجی را که حداقل یک n دارند را پیدا می‌کند.
n* تمامی نتایجی را که دارای صفر یا تعداد بیشتری از حرف n می‌باشند را پیدا می‌کند.
n? تمامی نتایجی را که دارای صفر یا تعداد بیشتری از حرف n می‌باشند را پیدا می‌کند.

استفاده از شی یا Object ,RegExp

در جاوااسکریپت، شی RegEXP یک عبارت با قاعده با ویژگی‌ها و متدهای از پیش تعریف شده‌است.

استفاده از متد ()test

متد​test()​یک متد عبارت از شی RegExp می‌باشد.

این متد یک رشته متنی را برای پیدا کردن الگو یا آرگومان خود جستجو می‌کند و با توجه به نتیجه مقدار True یا False را برمی‌گرداند.

مثال پایین یک رشته متنی را برای کاراکتر "e" جستجو می‌کند:

مثال

var patt = /e/;
patt.test("The best things in life are free!");

از آنجایی که کاراکتر "e" در رشته متنی مورد نظر وجود دارید، خروجی کدبالا به صورت زیر خواهد بود:

true

شما مجبور نیستید که عبارت با قاعده را ابتدا درون یک متغیر قرار دهید. دو خط کد بالا را می‌توان به یک خط کد به صورت زیر خلاصه کرد:

/e/.test("The best things in life are free!");

استفاده از متد ()exec

متد​exec()​یک متد شی RegExp است.

این متد یک رشته متنی را برای یک مقدار به خصوص جستجو می‌کند و نتیجه را به صورت یک شی یا object برمی‌گرداند.

اگر هیچ نتیجه ای یافت نشود، این متد یک شی خالی (null) را برمی‌گرداند.

مثال زیر یک رشته متنی را برای پیدا کردن کاراکتر "e" جستجو می‌کند:

مثال ۱

/e/.exec("The best things in life are free!");

مرجع کامل RegExp

برای دیدن یک کامل، شما می‌توانید مقاله ما را تحت عنوان مرجع کامل RegExp در جاوااسکریپت، را مشاهده کنید.

مرجع شامل توضیحات و مثال‌هایی از تمامی ویژگی‌ها و متدهای RegExp است.

منابع آموزشی