يك عبارت منظم(Regular Expression) دنباله از كراكترهاست كه يك الگوي جستجو را تشكيل ميدهد.
الگوي فوق هم براي جستجو وهم براي جايگزيني متني مورد استفاده قرار ميگيرد.
مثال
شرح مثال
/w3schools/iيك عبارت منظم است .
w3schoolsالگو ويا مورد جستجواست .
كراكترi يك اصلاح كننده است(modifier i) . براي غيرحساس بودن حروف در جستجواست. يعني حروف بزرگ وكوچك تفاوتي ندارند.
در جاوااسكريپت عبارات منظم اغلب با دو متد رشته اي search( ) , replace( ) استفاده ميشوند .
متدsearch( ) براي جستجو يا تطبيق عبارت درمتني مورد استفاده قرار ميگيرد.اين متد موقعيت الگو را در متن برگشت ميدهد.
متدreplace( )با جايگزيني الگو رشته اصلاحي را برگشت ميدهد .
متدsearch( ) الگو را در رشته اي جستجو نموده وموقعيت آنرا در رشته برگشت ميدهد.
مثال ـ جستجوي"w3schools"در رشته اي
let text = "Visit W3Schools!"; let n = text.search("W3Schools");
موقعيت برگشتي مثال فوق6
مثال ـ دراين مثال جستجوي"w3schools"با عدم حساسيت حروفي انجام ميشود .
let text = "Visit W3Schools"; let n = text.search(/w3schools/i);
دراين مثال جستجو با توجه باينكه بين حروف بزرگ وكوچك فرقي نيست، آنجام ميشود.نتيجه برگشتي6
متدreplace( ) ،رشته اي را جايگزينررشته ديگر در متني مي نمايد ومتن اصلاح شده برگشت ميشود.
مثال ـreplace() جايگريني رشته با رشته ديگر
let text = "Visit Microsoft!"; let result = text.replace("Microsoft", "W3Schools");
مثال ـ جايگزيني"w3scools"با"Microsoft"با توجه عدم حساسيت حروف
let text = "Visit Microsoft!"; let result = text.replace(/microsoft/i, "W3Schools");
توجه ـ آرگومانهاي عبارت منظم بجاي رشته اي ميتوانند در روش هاي فوق استفاده شوند .آنها جستجو را قدرتمندتر مينمايد .مثلا رعايت عدم حساسيت حروف در جستجو
اصلاح كننده | شــرح | تلاش دراجرا |
---|---|---|
i | عدم حساسيت در حروف | |
g | يك جستجوي سراسري را مطرح ميكند. | |
m | انطباق چند خطي | |
براكت ها([ ]) براي پيدانمودن محدوده كراكترها استفاده ميشود .
عبارت | شــرح | تلاش در اجرا |
---|---|---|
[abc] | جستجو براي هر كراكتر داخل براكت | |
[0-9] | پيدا كردن هر يكي از رقمهاي داخل براكت | |
(x|y) | پيدا نمودن هرعبارت تفكيكي با | | |
كراكترهاي معني دار(metacharctres) در الگو داراي معني خاصي در جستجو ميدهند.
metacharacter | شــرح | تلاش دراجرا |
---|---|---|
\d | پيداكردن ا رقام | |
\s | پيدا كردن فضاي خالي(Whitespace) | |
\b |
پيدا نمودن كلمه كه عبارت درابتداي كلمه باشد.مثل\bWORD
پيدانمودن كلمه كه عبارت در انتها باشد .مثلWORD\b |
|
\uxxxx | پيدا نمودن كراكتر با يوني كد باعددهگزاxxxx | |
تكراركننده | شــرح | تلاش دراجرا |
---|---|---|
n+ | تطبيق با رشته براي حداقل يكn | |
n* | تطبيق در رشته براي برخورد باهيچ يا بيشترباn | |
n? | تطبيق دررشته كه شامل صفر يايكي ازn | |
در جاوااسكريپت شئ منظم(RegExp object) يك عبارت منظمي است كه داراي ويژگي ومتدهاي ازپيش تعريف شده اي دارد .كه بدنبال مطرح ميشوند.
متدtest( ) يكي از متد هاي شئ منظم است .اين متد براي جستجوي يك الكو، براساس نتايج جستجوtrue ياfalse برگشت .
مثال ـ جستجوي كراكتر"e" در يك رشته
const pattern = /e/; pattern.test("The best things in life are free!");
با توجه به وجود"e"در رشته مورد جستجو نتيجه برگشتي true است .
در مثال بالا لازم نيست كه عبارت منظم در متغيري قرار گيرد، ميتوان آنرا مستقيم با متد بكار گرفت .دو دستور بالا بيك دستور زير تبديل مي شود.
/e/.test("The best things in life are free!");
متدexec( ) يكي از متدهاي عبارت منظم است .اين متد با جستجوي الگوئي در رشته، آنرا بصورت متن شئي برگشت ميدهد .اگر درجستجو الگو پيدا نشود، رشته تهي برگشت ميدهد(null) .
مثال ـ در مثال زير كراكتر"e"در رشته جستجو ميگردد .
/e/.exec("The best things in life are free!");