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

نکته: متدهای جستجوی رشته، در فصل بعدی توضیح داده خواهند شد.
آموزش پروپرتی length در جاوا اسکریپت
پروپرتی یا ویژگی length، طول یک رشته را برمی گرداند:
استخراج بخش هایی از رشته ها
برای استخراج یک بخش از یک رشته، سه متد وجود دارد:
- slice(start, end)
- substring(start, end)
- substr(start, length)
آموزش متد slice() در جاوا اسکریپت
متد slice() یک بخش از یک رشته را استخراج می کند و بخش استخراج شده را در قالب یک رشته ی جدید برمی گرداند. این متد، 2 پارامتر می گیرد: موقعیت شروع(start) و موقعیت پایان(end).
مثال شماره 2
جدا کردن یک بخش از یک رشته؛ از اندیس یا موقعیت 7 تا موقعیت 13 :
let text = "Apple, Banana, Kiwi";
let part = text.slice(7, 13);
امتحان کنیدنکته: جاوا اسکریپت، موقعیت ها یا همان اندیس ها را از 0 شروع می کند. یعنی اندیس اول 0 است و اندیس دوم 1 است و همین طور الی آخر.
مثال شماره 3
اگر پارامتر دوم را مشخص نکنیم، این متد بقیه ی رشته را برمی گرداند:
let text = "Apple, Banana, Kiwi";
let part = text.slice(7);
امتحان کنیدمثال شماره 4
اگر یک پارامتر، منفی باشد، موقعیت از انتهای رشته مورد شمارش قرار می گیرد:
let text = "Apple, Banana, Kiwi";
let part = text.slice(-12);
امتحان کنیدمثال شماره 5
در این مثال، یک بخش از یک رشته، بین موقعیت های 12- تا 6- برگردانده می شود:
let text = "Apple, Banana, Kiwi";
let part = text.slice(-12, -6);
امتحان کنید
آموزش متد substring() در جاوا اسکریپت
متد substring() مشابه با متد slice() است. تفاوت این دو، این است که در متد substring() اگر مقادیر شروع(start) یا پایان(end) کمتر از 0 باشند، صفر(0) تلقی می شوند.
در متد substring()، اگر پارامتر دوم را از قلم بیندازیم، باعث می شود بقیه ی رشته برگردانده شود.
آموزش متد substr() در جاوا اسکریپت
متد substr() مشابه با متد substr() است. تفاوت این دو این است که در متد substr()، پارامتر دوم، طولِ بخشِ استخراج شده را مشخص می کند.
اگر پارامتر دوم را از قلم بیندازیم، متد substr() بقیه ی رشته را برمی گرداند.
اگر پارامتر اول، منفی باشد، موقعیت از انتهای رشته شمارش می شود.
جایگزین کردن محتوای رشته ها در جاوا اسکریپت
متد replace()، یک مقدار مشخص را، با یک مقدار دیگر در یک رشته، جایگزین می کند:
مثال شماره 10
let text = "Please visit Microsoft!";
let newText = text.replace("Microsoft", "W3Schools");
امتحان کنیدنکته:
1. متد replace() رشته ای که بر روی آن فراخوانی شده است را تغییر نمی دهد.
2. متد replace() یک رشته ی جدید را برمی گرداند.
3. متد replace() تنها اولین تطابقی که پیدا می شود را جایگزین می کند.
اگر می خواهید تمام تطابق ها جایگزین شوند، از یک عبارت منظم(regular expression) به همراه نماد g/ استفاده کنید. به مثال های زیر توجه کنید:
به طور پیش فرض، متد replace() تنها اولین تطابق را جایگزین می کند:
مثال شماره 11
let text = "Please visit Microsoft and Microsoft!";
let newText = text.replace("Microsoft", "W3Schools");
امتحان کنید
متد replace() به طور پیش فرض، به حروف بزرگ و کوچک حساس است. مثلا اگر با حروف بزرگ، عبارت MICROSOFT را بنویسیم، کار نمی کند:
مثال شماره 12
let text = "Please visit Microsoft!";
let newText = text.replace("MICROSOFT", "W3Schools");
امتحان کنیدبرای اینکه جایگزین کردن عبارات، غیر حساس به حروف بزرگ و کوچک باشد،می توانیم از یک عبارت منظم، با نماد i/ (یعنی غیر حساس به حروف بزرگ و کوچک) استفاده کنیم:
مثال شماره 13
let text = "Please visit Microsoft!";
let newText = text.replace(/MICROSOFT/i, "W3Schools");
امتحان کنیدنکته: عبارت های منظم، بدون استفاده از علامت های نقل قول یا کوتیشن، نوشته می شوند.
برای جایگزین کردن تمام تطابق ها، از یک عبارت منظم با نماد(فلگ) g/ (تطابق سراسری) استفاده کنید.
مثال شماره 14
let text = "Please visit Microsoft and Microsoft!";
let newText = text.replace(/Microsoft/g, "W3Schools");
امتحان کنیدنکته: بعداً در مورد عبارت های منظم، توضیحات بیشتری خواهیم داد.
متد ReplaceAll() در جاوا اسکریپت
در سال 2021، جاوا اسکریپت یک متد رشته ای به نام ReplaceAll() را معرفی کرده است.
مثال شماره 15
text = text.replaceAll("Cats","Dogs");
text = text.replaceAll("cats","dogs");
امتحان کنیدمتد replaceAll() به ما امکان می دهد تا به جای اینکه یک رشته جایگزین شود، از یک عبارت منظم استفاده شود. اگر پارامتر مورد نظر یک عبارت منظم باشد، باید از نماد سراسری(g مخفف global) استفاده شود؛ در غیر این صورت یک خطای TypeError ایجاد خواهد شد.
مثال شماره 16
text = text.replaceAll(/Cats/g,"Dogs");
text = text.replaceAll(/cats/g,"dogs");
امتحان کنیدنکته: متد replaceAll() در اکما اسکریپت 2021 معرفی شده است. این متد در اینترنت الکسپلورر(Internet Explorer) کار نمی کند.
تبدیل حروف بزرگ و کوچک به یکدیگر در جاوا اسکریپت
برای تبدیل یک رشته به حروف بزرگ می توانیم از متد toUpperCase() استفاده کنیم. برای تبدیل یک رشته به حروف کوچک، می توانیم از متد toLowerCase() استفاده کنیم:
تبدیل یک رشته به حروف بزرگ
تبدیل یک رشته به حروف کوچک
مثال شماره 18
let text1 = "Hello World!"; // رشته اصلی
let text2 = text1.toLowerCase(); // است که به حروف کوچک تبدیل شده است text1 همان text2
امتحان کنیداستفاده از متد concat() در جاوا اسکریپت
متد concat() در جاوا اسکریپت، دو یا چند رشته را به یکدیگر پیوند می دهد:
مثال شماره 19
let text1 = "Hello";
let text2 = "World";
let text3 = text1.concat(" ", text2);
امتحان کنیدما می توانیم به جای استفاده از عملگرِ به اضافه(+) از متد concat() استفاده کنیم. بعنوان مثال، دو خط کد زیر مشابه یکدیگر هستند:
مثال
text = "Hello" + " " + "World!";
text = "Hello".concat(" ", "World!");
نکته: تمام متدهای مربوط به رشته ها، یک رشته ی جدید را برمی گردانند. آنها رشته ی اصلی را تغییر نمی دهند. یعنی رشته ها تغییر ناپذیر هستند؛ و نمی توانیم آنها را تغییر دهیم. و تنها می توانیم آنها را جایگزین کنیم.
آموزش متد trim() در جاوا اسکریپت
متد trim() فاصله های سفیدِ اول و آخر یک رشته را حذف می کند:
آموزش متد trimStart() در جاوا اسکریپت
در سال 2019، اکما اسکریپت متد رشته ایِ trimStart() را به جاوا اسکریپت اضافه کرد. متد trimStart() مانند متد trim() کار می کند اما تنها، فاصله های سفیدِ ابتدای یک رشته را حذف می کند.
متد رشته ای trimStart() از ژانویه 2020 در تمام مرورگرهای مدرن پشتیبانی می شود:
![]() |
![]() |
![]() |
![]() |
![]() |
| Chrome 66 | Edge 79 | Firefox 61 | Opera 50 | Safari 12 |
| Apr 2018 | Jan 2020 | Jun 2018 | May 2018 | Sep 2018 |
آموزش متد trimEnd() در جاوا اسکریپت
در اکما اسکریپت 2019، یک متد رشته ای به نام متد trimEnd() به جاوا اسکریپت اضافه شد. متد trimEnd() مانند متد trim() کار می کند اما تنها فاصله های سفیدِ انتهای یک رشته را حذف می کند.
متد trimEnd() در تمام مرورگرهای مدرن از ژانویه سال 2020 به بعد پشتیبانی می شود:
![]() |
![]() |
![]() |
![]() |
![]() |
| Chrome 66 | Edge 79 | Firefox 61 | Opera 50 | Safari 12 |
| Apr 2018 | Jan 2020 | Jun 2018 | May 2018 | Sep 2018 |
فاصله ی داخلی یا Padding در جاوا اسکریپت
اکما اسکریپت در سال 2017، این دو متد رشته ای را به جاوا اسکریپت اضافه کرده است: متد padStart() و متد padEnd() . از این دو متد برای ایجاد قابلیت فاصله ی داخلی(پر کردن ابتدا و انتها) در ابتدا و انتهای یک رشته استفاده می شود.
متد padStart() در جاوا اسکریپت
از متد padStart() برای قرار دادن تعدادی کاراکتر در ابتدای یک رشته استفاده می شود. این متد، تا زمانی که رشته ی ما به یک طول دلخواه برسد، یک رشته را در ابتدای یک رشته ی دیگر اضافه می کند.
مثال شماره 23
اضافه کردن یک 0 (صفر) در ابتدای یک رشته، تا زمانی که طول رشته به 4 برسد:
let text = "5";
let padded = text.padStart(4,"0");
امتحان کنیدمثال شماره 24
اضافه کردن یک x در ابتدای یک رشته(عدد)، تا زمانی که طول آنها برابر با 4 شود:
let text = "5";
let padded = text.padStart(4,"x");
امتحان کنیدپشتیبانی مرورگرها
متد padStart() به اکما اسکریپت 2017 تعلق دارد. این متد در تمام مرورگرهای مدرن پشتیبانی می شود:
![]() |
![]() |
![]() |
![]() |
![]() |
| Chrome | Edge | Firefox | Opera | Safari |
| بله | بله | بله | بله | بله |
نکته: متد padStart() در اینترنت اکسپلورر(Internet Explorer) پشتیبانی نمی شود.
متد padEnd() در جاوا اسکریپت
متد padEnd() یک رشته را در انتهای یک رشته ی دیگر قرار می دهد. این متد، یک رشته را در انتهای رشته ی دیگری قرار می دهد و این کار ادامه می یابد تا به یک طول مشخص برسیم.
نکته: متد padEnd() یک متد رشته ای به حساب می آید. برای اینکه بتوانید یک عدد را در انتهای رشته قرار دهید، این عدد را ابتدا، به یک رشته تبدیل کنید. به مثال زیر توجه کنید:
مثال شماره 27
let numb = 5;
let text = numb.toString();
let padded = text.padEnd(4,"0");
امتحان کنیدپشتیبانی مرورگرها
متد padEnd() در اکما اسکریپت 2017 معرفی شده است. این متد در تمام مرورگرهای مدرن پشتیبانی می شود:
![]() |
![]() |
![]() |
![]() |
![]() |
| Chrome | Edge | Firefox | Opera | Safari |
| بله | بله | بله | بله | بله |
متد padEnd() در مرورگر اینترنت اکسپلورر پشتیبانی نمی شود.
استخراج کاراکترهای رشته در جاوا اسکریپت
برای استخراج کاراکترهای رشته، سه متد وجود دارد:
- charAt(position)
- charCodeAt(position)
- [ ] Property access
متد charAt() در جاوا اسکریپت
متد charAt()، یک کاراکتر را که در یک اندیس(موقعیت) مشخص در یک رشته قرار دارد، برمی گرداند:
متد charCodeAt() در جاوا اسکریپت
متد charCodeAt() ، کدِ یونیکدِ یک کاراکتر را که در یک اندیس مشخص از یک رشته قرار دارد، برمی گرداند. این متد، یک کد UTF-16 (یک عدد صحیح بین 0 و 65535) را برمی گرداند.
دسترسی پروپرتی در جاوا اسکریپت
اکما اسکریپت 5 در سال 2009 به ما امکان دسترسی به کاراکترهای یک رشته(دسترسی به پروپرتی ها) با استفاده از [ ] داده است:
نکته: دسترسی پروپرتی(Property access) ممکن است کمی غیرقابل پیش بینی باشد:
- دسترسی پروپرتی باعث می شود رشته ها مانند آرایه ها شوند(اما آنها آرایه نیستند).
- اگر هیچ کاراکتری پیدا نشود، براکت ها [ ] مقدار undefined را برمی گردانند؛ در حالیکه متد charAt() یک رشته ی خالی را برمی گرداند. این متد.
- دسترسی پروپرتی تنها قابلیت خواندن دارد(read only). بنابراین اگر بنویسیم: str[0] = "A" خطایی ایجاد نمی شود(اما کار نمی کند).
مثال شماره 31
let text = "HELLO WORLD";
text[0] = "A"; // خطایی ایجاد نمی کند اما کار نمی کند
امتحان کنیدتبدیل یک رشته به آرایه
اگر می خواهید با یک رشته مانند یک آرایه رفتار کنید، می توانید آن را به یک آرایه تبدیل کنید.
متد split() در جاوا اسکریپت
ما می توانیم با استفاده از متد split() یک رشته را به یک آرایه تبدیل کنیم:
مثال شماره 32
text.split(",") // تجزیه بر اساس کاما
text.split(" ") // تجزیه بر اساس فاصله سفید
text.split("|") // | تجزیه بر اساس
امتحان کنیداگر مقدار جداکننده، از قلم انداخته شود، تمام رشته، در اندیس [0] از آرایه ی برگردانده شده قرار می گیرد. اگر جدا کننده برابر با "" باشد، آرایه ی برگردانده شده، به صورت کاراکترهای تکی خواهد بود.
- بازدید: 519





1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.