متدهاي رشته اي جاوااسكريپت مطابق جدول زيراست.
String length String slice() String substring() String substr() String replace() String replaceAll() String toUpperCase() String toLowerCase() String concat() |
String trim() String trimStart() String trimEnd() String padStart() String padEnd() String charAt() String charCodeAt() String split() |
توجه ـ متد رشته ايserch در فصل بعدي مطرح ميشود .
ويژگيlength طول رشته را برميگرداند.
مثال ـ ويژگيlength رشته
let text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; let length = text.length;
سه متد براي استخراج قطعات رشته وجود دارد:
متد رشته ايslice() قطعه اي از رشته را استخراج و با آن رشته جديدي ايجاد ميكند
اين متد شامل دو پارامتر، اولي موفعيت شروع ودوم موقعيت پاياني است .كلمهend بمعني انتهاي رشته نمي باشد.
مثال ـ متدslice()
قطعه اي از رشتهtext را از كراكتر 8 تا كراكتر13استخراج مي نمايد.
let text = "Apple, Banana, Kiwi"; let part = text.slice(7, 13);
جاوااسكريپت شمارش را ازصفر شروع ميكند.
مثال ـ اگر پارامتر دوم حذف شود، استخراج تا انتهاي رشته است
let text = "Apple, Banana, Kiwi"; let part = text.slice(7);
اگر پارامتر منفي باشد موقعيت از انتهاي رشته شمارش مي شود.
let text = "Apple, Banana, Kiwi"; let part = text.slice(-12);
مثال ـ در اين مثال قستمي از يك رشته را ازموقعيت-12 تا موقعيت -6 استخراج ميكند.
let text = "Apple, Banana, Kiwi"; let part = text.slice(-12, -6);
متدsubstring() مشابه متدslice() است، بااين اختلاف كهstart وend داراي مقادير منفي صفر درنظرگرفته ميشود .
مثال ـ متدsubstring()
let str = "Apple, Banana, Kiwi"; let part = str.substring(7, 13);
اگر پارامتر دوsubstring() اعلام نشود، از موقعيتstart تا انتهاي رشته استخراج ميشود.
متد substr() مشابه متد slice() وتنها اختلاف پارامتر دوم است طول قسمت استخراجي را مشخص ميكند.و
مثال ـ متدsubstr()
let str = "Apple, Banana, Kiwi"; let part = str.substr(7, 6);
اگر متد بدون پارامتر دوم استفاده شود، از شروع تا انتهاي رشته خواهد بود.
مثال ـ بدون پارامتردوم
let str = "Apple, Banana, Kiwi"; let part = str.substr(7);
اگر پارامتراول منفي باشد، ازانتها شمارش انجام ميشود.
مثال ـ پارامتر اول منفي
let str = "Apple, Banana, Kiwi"; let part = str.substr(-4);
متدreplace()جايگزيني متني با متن ديگررا در رشته انجام داده وحاصل رابرگشت ميدهد.
مثال ـ جايگزيني متن با متن ديگر در رشته
let text = "Please visit Microsoft!";
let newText = text.replace("Microsoft", "W3Schools");
توجه داشته باشد كه
اگر ميخواهيد همه وارد تطبيق جايگزين شود، از عبارت منظم با/g استفاده كنيد . نمونه آن در مثالهاي بعدي است.
بصورت پيش فرض متدreplace() اولين تطبيق را جايگزين ميكند .
مثال ـ با كليك در دكمهtryit به تعداد مورد نياز همه موارد ميتواند جايگزين شود .
let text = "Please visit Microsoft and Microsoft!";
let newText = text.replace("Microsoft", "W3Schools");
بصورت پيش فرض متد فوق براي جايگزيني نسبت بحروف حساس است .اگرMICROSOFT را در مثال زير در نظر بگيريد، بخاطر خروف بزرگ جايگزيني انجام نميشود.
let text = "Please visit Microsoft!";
let newText = text.replace("MICROSOFT", "W3Schools");
بصورت پيش فرض متد فوق داراي حالت حساس بحروف است ، براي غير حساس بودن بحروف از عبارت منظم با فلگ/i استفاده كنيد .
مثال ـ جايگزيني بدون حساسيت بحروف
let text = "Please visit Microsoft!";
let newText = text.replace(/MICROSOFT/i, "W3Schools");
توجه ـ عبارت منظم(Regular expressions) بدون كوتيشن نوشته شود.
براي جايگزيني همه موارد تطبيق ، از عبارت منظم با فلگ/g استفاده كنيد .
مثال ـ جايگزيني همه موارد تطبيق
let text = "Please visit Microsoft and Microsoft!";
let newText = text.replace(/Microsoft/g, "W3Schools");
در سال2021 جاوااسكريپت متد رشته ايreplaceALL() را معرفي كرد.
اين متد تمام موارد تطبيقي را در رشته جايگزين ونتيجه حاصل را برگشت ميدهد.
متد مثال -repaleALL()
let text = "I love cats. Cats are very easy to love. Cats are very popular." text = text.replaceAll("Cats","Dogs"); text = text.replaceAll("cats","dogs");
متدreplaceALL() اجاره ميدهد كه براي جايگزيني همه موارد تطبيق از عبارت منظم استفاده كنيد.
در عبارت منظم بايد فلگ جهاني/g تنظيم شود .در غيراين حالت خطا ايجاد مي شود.
مثال ـ استفاده عبارت منظم در متدrepaceALL()
text = text.replaceAll(/Cats/g,"Dogs"); text = text.replaceAll(/cats/g,"dogs");
متدreplaceALL() امكاني است كه درES2021 معرفي گرديد .ودر internet Explorer كار نميكند.
تبديل حروف كوچك به حروف بزرگ يك رشته با متدtoUperCae() انجام ميشود
تبديل حروف بزرگ به كوچك يك رشته بامتدtoLowerCase() انجام ميشود.
مثال ـ تبديل حروف رشته به حروف بزرگ
let text1 = "Hello World!"; let text2 = text1.toUpperCase();
مثال ـ تبديل حروف بزرگ رشته به كوچك
let text1 = "Hello World!"; // String let text2 = text1.toLowerCase(); // text2 is text1 converted to lower
متدconcat() دويا چند رشته را بهم مي چسباند .
مثال ـ نمونه اتصال رشته ها
let text1 = "Hello"; let text2 = "World"; let text3 = text1.concat(" ", text2);
متدconcat() ميتواند بجاي عملگر جمع در رشته استفاده شود.دو خط كد زير مشابه ميباشند.
text = "Hello" + " " + "World!"; text = "Hello".concat(" ", "World!");
توجه ـ همه متدهاي رشته اي ، رشته جديدي را برگشت ميدهند .آنها رشته اصلي را تغيير نمي دهند.
بطور رسمي تر،رشته ها تغيير ناپذيرند، رشته قابل تغيير نيست، فقط جايگزين ميشوند.
متدtrim() فضاي خالي اطراف رشته راحذف ونتيجه را برگشت ميدهد .
مثال ـ حذف فضاي خالي رشته
let text1 = " Hello World! "; let text2 = text1.trim();
ECMAScript2019متد رشته ايtrimStart() را به جاوااسكريپت اضافه كرده است .
اين متد مشابه متدtrim() كارميكند، فقط فضاي خالي شروع رشته را حذف ميكند .
مثال ـ حذف فضاي خالي شروع رشته
let text1 = " Hello World! "; let text2 = text1.trimStart();
متد رشته ايtrimStart() جاوااسكريپت ازژانويه2020 توسط تمام مرورگرهاي مدرن پشتيباني ميشود.
66.0
Apr2018 | 79.0
Jan 2020 | 61.0
Jun 2018 | 12.0
Sep 2018 | 50.0
May 2018 |
ECMAScript2019متد رشته ايtrimEnd() را به جاوااسكريپت اضافه كرده است.
اين متد مشابه متدtrim() كارميكند، فقط فضاي خالي انتهاي رشته را حذف ميكند.
مثال ـ حذف فضاي خالي انتهاي رشته
let text1 = " Hello World! "; let text2 = text1.trimEnd();
متد رشته ايtrimStart() جاوااسكريپت ازژانويه2020 توسط تمام مرورگرهاي مدرن پشتيباني ميشود.
66.0
Apr2018 | 79.0
Jan 2020 | 61.0
Jun 2018 | 12.0
Sep 2018 | 50.0
May 2018 |
ECMAScript 2017دو متد جديد براي افزايش رشته (padding) معرفي كرده است . padStart() , padEnd()كه در ابتداي رشته ودر انتهاي آن عمل افزايش را انجام ميدهند.
متدpadStart() رشته را ازشروع افزايش ميدهد .اين متدداراي دوپارامتراست .اولين طول نهائي رشته بعدازافزايش، و دومين پارامتر رشته ايكه بايد اضافه شود تا بطول مورد نظر بر.
مثال ـ در سمت شروع"0" اضافه ميشود تا طول را به چهار برساند.
let text = "5"; let padded = text.padStart(4,"0");
مثال ـ در سمت شروع رشته"x" اضافه ميشود تا رشته نهائي بطول چهار برسد.
let text = "5"; let padded = text.padStart(4,"x");
توجه ـ متدpadStart() يك متد رشته ايست، براي افزودن عدد ابتدا آن بايد تبديل برشته گردد، تابتواند در متد استفاده گردد.
مثال ـ بمثال زير توجه نائيد.
let numb = 5; let text = numb.toString(); let padded = text.padStart(4,"0");
padStart()از امكانات ECMAScript 2017 بوده و در همه مرورگرهاي مدرن قابل پشتيباني است .اما در اينترنت اكسپلورر پشتيباني نمي شود.
Yes | Yes | Yes | Yes | Yes |
متدpadEnd() رشته ديگري به انتهاي رشته اضافه مي نمايد .اين متد هم داراي دو پارامتر، اولي رشته ايست كه بايد به دفعات اضافه گردد تا رشته نهائي به طول اعلام شده برسد..
مثال ـ در اين مثال"0" انتهاي رشته اضافه مي گردد تا رشته نهائي بطول چهار برسد .
let text = "5"; let padded = text.padEnd(4,"0");
مثال ـ"x"سه بار به انتهاي"5" اضافه ميشود تا طول برابر چهارشود. .
let text = "5"; let padded = text.padEnd(4,"x");
توجه ـ متدpadEnd() يك متد رشته ايست، براي افزودن عدد انتهاي آن بايد تبديل برشته گردد، تابتواند در متد استفاده گردد.
مثال ـ افزودن عدد بانتهاي رشته
let numb = 5; let text = numb.toString(); let padded = text.padEnd(4,"0");
padEnd()از امكاناتECMAScript 2017 بوده و در همه مرورگرهاي مدرن قابل پشتيباني است .اما در اينترنت اكسپلورر پشتيباني نمي شود.
Yes | Yes | Yes | Yes | Yes |
سه متد براي استخراج كراكتر از رشته وجود دارد:
متدcharAt( ) ازرشته كراكتردر موقعيت مشخص شده رااستخراج وبرگشت ميدهد .
مثال ـ كراكتر موقعيت صفر رشته را برگشت ميدهد.
let text = "HELLO WORLD"; let char = text.charAt(0);
متدcharCodeAt( ) يوني كد كراكتر با موقعيت مشخص از رشته را استخراج وبرگشت ميدهد .متد فوقUTF_16 كراكتركه عددي بين 0 تا 65535 است برگشت ميدهد .
مثال ـ استخراج يوني كد كراكتر از رشته
let text = "HELLO WORLD"; let char = text.charCodeAt(0);
درECMAScrip 5(2009) اجازه داده ميشود كه با دسترسي به ويژگي رشته كراكتر ازآن استخراج نمود .
مثال ـ استخراج كراكتر از طريق ويژگي رشته
let text = "HELLO WORLD"; let char = text[0];
توجه ـ دسترسي به ويژگي رشته كمي غير قابل پيش بيني است:
مثال ـ همان مطلب بالا
let text = "HELLO WORLD"; text[0] = "A"; // Gives no error, but does not work
در صورتيكه بخواهيد با رشته مشابه با آرايه كار كيند، ميتوانيد آنرا به آرايه تبديل كنيد.
يك رشته ميتواند با متدsplit() به آرايه تبديل شود .
مثال ـ تبديل رشته به آرايه
text.split(",") // Split on commas text.split(" ") // Split on spaces text.split("|") // Split on pipe
اگر جداكننده در متد فوق حذف شود ، كل رشته در ايندكس صفر آرايه قرارميگرد[0] .
اگر جداكننده در متد"" باشد، آرايه برگشتي با عناصر تك كراكتري ميباشد .
مثال ـ متد با جدا كننده""
text.split("")