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

Ratings
(0)

 

 


نکته: متدهای جستجوی رشته، در فصل بعدی توضیح داده خواهند شد.


آموزش پروپرتی length در جاوا اسکریپت

پروپرتی یا ویژگی length، طول یک رشته را برمی گرداند:

مثال شماره 1

let text = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
let length = text.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) تلقی می شوند.

مثال شماره 6

let str = "Apple, Banana, Kiwi";
let part = str.substring(7, 13);
امتحان کنید

 در متد substring()، اگر پارامتر دوم را از قلم بیندازیم، باعث می شود بقیه ی رشته برگردانده شود.


آموزش متد substr() در جاوا اسکریپت

متد substr() مشابه با متد substr() است. تفاوت این دو این است که در متد substr()، پارامتر دوم، طولِ بخشِ استخراج شده را مشخص می کند.

مثال شماره 7

let str = "Apple, Banana, Kiwi";
let part = str.substr(7, 6);
امتحان کنید

اگر پارامتر دوم را از قلم بیندازیم، متد substr() بقیه ی رشته را برمی گرداند.

مثال شماره 8

let str = "Apple, Banana, Kiwi";
let part = str.substr(7);
امتحان کنید

اگر پارامتر اول، منفی باشد، موقعیت از انتهای رشته شمارش می شود.

مثال شماره 9

let str = "Apple, Banana, Kiwi";
let part = str.substr(-4);
امتحان کنید

 


جایگزین کردن محتوای رشته ها در جاوا اسکریپت

متد 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() استفاده کنیم:


 تبدیل یک رشته به حروف بزرگ

مثال شماره 17

let text1 = "Hello World!";
let text2 = text1.toUpperCase();
امتحان کنید

تبدیل یک رشته به حروف کوچک

مثال شماره 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() فاصله های سفیدِ اول و آخر یک رشته را حذف می کند:

مثال شماره 20

let text1 = "      Hello World!      ";
let text2 = text1.trim();
امتحان کنید

 


 آموزش متد trimStart() در جاوا اسکریپت

 در سال 2019، اکما اسکریپت متد رشته ایِ trimStart() را به جاوا اسکریپت اضافه کرد. متد trimStart() مانند متد trim() کار می کند اما تنها، فاصله های سفیدِ ابتدای یک رشته را حذف می کند.

مثال شماره 21

let text1 = "     Hello World!     ";
let text2 = text1.trimStart();
امتحان کنید

متد رشته ای 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() کار می کند اما تنها فاصله های سفیدِ انتهای یک رشته را حذف می کند.

مثال شماره 22

let text1 = "     Hello World!     ";
let text2 = text1.trimEnd();
امتحان کنید

متد 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() یک رشته را در انتهای یک رشته ی دیگر قرار می دهد. این متد، یک رشته را در انتهای رشته ی دیگری قرار می دهد و این کار ادامه می یابد تا به یک طول مشخص برسیم.

مثال شماره 25

let text = "5";
let padded = text.padEnd(4,"0");
امتحان کنید

مثال شماره 26

let text = "5";
let padded = text.padEnd(4,"x");
امتحان کنید

نکته: متد padEnd() یک متد رشته ای به حساب می آید. برای اینکه بتوانید یک عدد را در انتهای رشته قرار دهید، این عدد را ابتدا، به یک رشته تبدیل کنید. به مثال زیر توجه کنید:

مثال شماره 27

let numb = 5;
let text = numb.toString();
let padded = text.padEnd(4,"0");
امتحان کنید

پشتیبانی مرورگرها

متد padEnd() در اکما اسکریپت 2017 معرفی شده است. این متد در تمام مرورگرهای مدرن پشتیبانی می شود:

 Chrome  Edge  Firefox  Opera Safari
بله بله بله بله بله

متد padEnd() در مرورگر اینترنت اکسپلورر پشتیبانی نمی شود.


استخراج کاراکترهای رشته در جاوا اسکریپت

برای استخراج کاراکترهای رشته، سه متد وجود دارد:

  1. charAt(position)
  2. charCodeAt(position)
  3. [ ] Property access

متد charAt() در جاوا اسکریپت

متد charAt()، یک کاراکتر را که در یک اندیس(موقعیت) مشخص در یک رشته قرار دارد، برمی گرداند:

مثال شماره 28

let text = "HELLO WORLD";
let char = text.charAt(0);
امتحان کنید

متد charCodeAt() در جاوا اسکریپت

متد charCodeAt() ، کدِ یونیکدِ یک کاراکتر را که در یک اندیس مشخص از یک رشته قرار دارد، برمی گرداند. این متد، یک کد UTF-16 (یک عدد صحیح بین 0 و 65535) را برمی گرداند.

مثال شماره 29

let text = "HELLO WORLD";
let char = text.charCodeAt(0);
امتحان کنید

 


دسترسی پروپرتی در جاوا اسکریپت

اکما اسکریپت 5 در سال 2009 به ما امکان دسترسی به کاراکترهای یک رشته(دسترسی به پروپرتی ها) با استفاده از [ ] داده است:

مثال شماره 30

let text = "HELLO WORLD";
let char = text[0];
امتحان کنید

 


نکته: دسترسی پروپرتی(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] از آرایه ی برگردانده شده قرار می گیرد. اگر جدا کننده برابر با "" باشد، آرایه ی برگردانده شده، به صورت کاراکترهای تکی خواهد بود.

مثال شماره 33

text.split("") 
امتحان کنید

 

  • بازدید: 519

نوشتن دیدگاه

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

ارسال