‎‎عبارات منظم جاوااسكريپتJavaScript Regular Expressions -‎

Previous >    <Next  

‎يك عبارت منظم‎(Regular Expression)‎ دنباله از كراكترهاست كه يك الگوي جستجو ‎را تشكيل ميدهد.

‎‎الگوي فوق هم براي جستجو وهم براي جايگزيني متني مورد استفاده قرار ميگيرد.

‎‎عبارت منظم چيستWhat is a Regular Expression -‎

‎‎فرمت كليSyntax -‎

/pattern/modifiers;‎‎

‎‎مثال

‎/w3schools/i;‎

‎‎شرح مثال

‎‎/w3schools/i‎‎يك عبارت منظم است .

‎w3schools‎الگو ويا مورد جستجواست .

‎كراكترi يك اصلاح كننده است‎(modifier i)‎ . براي غيرحساس بودن حروف در جستجواست. ‎يعني حروف بزرگ وكوچك تفاوتي ندارند.

‎‎متدهاي رشته مورد استفادهUsing String Methods -‎

‎در جاوااسكريپت عبارات منظم اغلب با دو متد رشته اي ‎search( ) , replace( ) ‎‎استفاده ميشوند .

‎متد‎search( ) ‎ براي جستجو يا تطبيق عبارت درمتني مورد استفاده ‎قرار ميگيرد.اين متد موقعيت الگو را در متن برگشت ميدهد.

‎‎متد‎replace( )‎با جايگزيني الگو رشته اصلاحي را برگشت ميدهد .

‎‎استفادهsearch( ) رشته اي با يك رشته

‎متد‎search( )‎ الگو را در رشته اي جستجو نموده وموقعيت آنرا در رشته ‎برگشت ميدهد.

‎‎مثال ـ جستجوي‎"w3schools‎"‎در رشته اي

let text = "Visit W3Schools!";
let n = text.search("W3Schools");

--(go to editor for change code and run)

‎‎موقعيت برگشتي مثال فوق‎6

‎‎استفاده متد‎search()‎‎ با عبارت منظم

‎‎مثال ـ دراين مثال جستجوي‎"w3schools‎"‎با عدم حساسيت حروفي انجام ميشود .

let text = "Visit W3Schools";
let n = text.search(/w3schools/i);

--(go to editor for change code and run)

‎‎دراين مثال جستجو با توجه باينكه بين حروف بزرگ وكوچك فرقي نيست، آنجام ميشود.نتيجه برگشتي6

‎‎استفاده از‎replace( )‎ با يك رشته

‎متد‎replace( ) ‎ ،رشته اي را جايگزينررشته ديگر در متني مي نمايد ‎ومتن اصلاح شده برگشت ميشود.

‎‎مثال ـ‎replace()‎‎ جايگريني رشته با رشته ديگر

let text = "Visit Microsoft!";
let result = text.replace("Microsoft", "W3Schools");

--(go to editor for change code and run)

‎‎استفاده از‎replace( )‎ با عبارت منظم

‎‎مثال ـ جايگزيني‎"w3scools‎"‎با‎"Microsoft‎"‎با توجه عدم حساسيت حروف

let text = "Visit Microsoft!";
let result = text.replace(/microsoft/i, "W3Schools");

--(go to editor for change code and run)

‎توجه ـ آرگومانهاي عبارت منظم بجاي رشته اي ميتوانند در روش هاي فوق استفاده شوند .آنها جستجو ‎را قدرتمندتر مينمايد .مثلا رعايت عدم حساسيت حروف در جستجو

‎‎اصلاح كننده ها در عبارت منظمRegular Expression Modiers -‎

‎‎اصلاح كننده ‎‎شــرح ‎‎تلاش دراجرا
‎i‎ ‎عدم حساسيت در حروف ‎‎
‎g‎ ‎يك جستجوي سراسري را مطرح ميكند. ‎‎
‎m‎ ‎انطباق چند خطي ‎‎

‎‎الگوها در عبارت منظمRegular Expression Patterns -‎

‎‎براكت ها‎([ ])‎ براي پيدانمودن محدوده كراكترها استفاده ميشود .

‎‎عبارت ‎‎شــرح ‎‎تلاش در اجرا
‎[abc] ‎جستجو براي هر كراكتر داخل براكت ‎‎
‎[0-9] ‎پيدا كردن هر يكي از رقمهاي داخل براكت ‎‎
‎(x|y) ‎پيدا نمودن هرعبارت تفكيكي با‎ | ‎‎

‎‎كراكترهاي معني دار‎(metacharctres)‎ در الگو داراي معني خاصي در جستجو ميدهند.

<>‎
‎metacharacter‎ ‎‎شــرح ‎‎تلاش دراجرا
‎\d ‎پيداكردن ا رقام ‎‎
‎\s ‎پيدا كردن فضاي خالي‎(Whitespace)‎‎
‎\b ‎پيدا نمودن كلمه كه عبارت درابتداي كلمه باشد.مثل‎\bWORD
‎‎ ‎پيدانمودن كلمه كه عبارت در انتها باشد .مثل‎WORD\b
‎‎
‎\uxxxx ‎پيدا نمودن كراكتر با يوني كد باعددهگزاxxxx ‎‎

‎‎‎تكراركننده هاquntifiers -‎

‎‎تكراركننده ‎‎شــرح ‎‎تلاش دراجرا
‎n+ ‎تطبيق با رشته براي حداقل يكn ‎‎
‎n* ‎تطبيق در رشته براي برخورد باهيچ يا بيشترباn ‎‎
‎n?‎ ‎تطبيق دررشته كه شامل صفر يايكي ازn ‎‎

‎‎كاربرد شئ منظمUsing the RegExp Object -‎

‎در جاوااسكريپت شئ منظم‎(RegExp object)‎ يك عبارت منظمي است كه داراي ويژگي ‎ومتدهاي ازپيش تعريف شده اي دارد .كه بدنبال مطرح ميشوند.

‎‎كاربرد متد‎test()‎

‎متد‎test( )‎ يكي از متد هاي شئ منظم است .اين متد براي جستجوي يك ‎الكو، براساس نتايج جستجوtrue ياfalse برگشت .

‎‎مثال ـ جستجوي كراكتر‎"e‎"‎ در يك رشته

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

--(go to editor for change code and run)

‎‎با توجه به وجود‎"e‎"‎در رشته مورد جستجو نتيجه برگشتي true است .

‎در مثال بالا لازم نيست كه عبارت منظم در متغيري قرار گيرد، ميتوان آنرا مستقيم با متد بكار ‎گرفت .دو دستور بالا بيك دستور زير تبديل مي شود.

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

‎‎كاربرد متد‎exec( )

‎متد‎exec( ) ‎ يكي از متدهاي عبارت منظم است .اين متد با جستجوي ‎الگوئي در رشته، آنرا بصورت متن شئي برگشت ميدهد .اگر درجستجو الگو پيدا نشود، رشته تهي برگشت ‎ميدهد‎(null)‎ .

‎‎مثال ـ در مثال زير كراكتر‎"e‎"‎در رشته جستجو ميگردد .

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

--(go to editor for change code and run)


Previous >    <Next