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

در این مقاله در ادامه مباحث آموزش زبان برنامه نویسی جاوا اسکریپت به آموزش متدهای کار با رشته می پردازیم.

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

در زبان برنامه نویسی جاوا اسکریپت متد هایی برای کار با رشته ها وجود دارد که به ما کمک می کنند تا به بهترین شکل از رشته ها استفاده کنیم.

متدهای رشته (Strings Methods) و مشخصه ها

مقادیر اولیه مانند، "John doe" نمی توانند مشخصه یا متد داشته باشند (چون اشیا محسوب نمی شوند). اما در جاوا اسکریپت متدها و مشخصه ها هم برای مقادیر اولیه در دسترس می باشند، چرا که جاوا اسکریپت هنگام اجرای متدها و مشخصه ها مقادیر اولیه را بعنوان اشیا در نظر می گیرد.

طول رشته

مشخصه length طول یک رشته را به ما برمی گرداند. خروجی این مشخصه یک عدد است که به ما طول رشته مورد نظر را نشان می دهد.

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

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

جستجوی یک رشته در یک رشته ی دیگر

متد ()indexOf ، ایندکس یا موقعیت اولین نقطه ظاهر شدن یک متن خاص را در یک رشته به ما بر می گرداند و در صورتی که موفق به پیدا شدن رشته مورد نظر نگردد، مقدار (1-) را برمی گرداند.

آموزش کار با متدهای رشته

خروجی مثال بالا به شکل زیر است. همانطور که می بینید اولین نقطه رویت کلمه locate در موقعیتی با ایندکس 7 است.

آموزش کار با StringMethods

متد ()lastIndexOf

متد ()lastIndexOf : این متد ایندکس آخرین نقطه ظاهر شدن یک متن بخصوص در یک رشته را به ما برمی گردان و به عبارتی از انتهای رشته شروع به جستجوی رشته مورد نظر می کند. درصورتی که موفق به پیدا شدن رشته مورد نظر نگردد، مقدار (-1) را برمی گرداند.

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

خروجی مثال بالا به شکل زیر است.

آموزش JavaScript

همانطور که گفتیم هم ()indexOf و هم ()lastIndexOf در صورتی که موفق به پیدا کردن کردن متن نباشند مقدار (-1) را برمی گردانند.

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

در مثال زیر چون متد ()indexof موفق به پیدا کردن متن “John” نشد، مقدار (-1) در خروجی نمایش داده شد.

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

هم متد ()indexOf و هم متد ()lastIndexOf یک پارامتر ثانویه را به عنوان موقعیت شروع جستجو در نظر می گیرند:

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

مثال زیر نحوه انجام این کار را نشان می دهد:

آموزش JavaScript

متد ()lastIndexOf از آخر به اول جستجو می کند، به عبارتی: اگر پارامتر دوم 15 باشد، جستجو از انتهای رشته از موقعیت 15 شروع شده و تا ابتدای رشته ادامه پیدا می کند.

آموزش JavaScript

خروجی مثال بالا به شکل زیر است:

آموزش JavaScript

متد ()search به جستجوی یک رشته در یک مقدار مشخص می پردازد و موقعیت یافت شده را برمی گرداند:

آموزش کار با StringMethods

در مثال بالا با استفاده از متد search موقعیت قرار گرفتن عبارت “locate” در متن موردنظر جستجو و مقدار 7 به عنوان موقعیت عبارت “locate” در متن در خروجی نمایش داده شده است.

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

یک نکته ی مهم :

آیا دو متد ()indexOf و ()search باهم برابر هستند؟ آیا هر دوی این متدها ورودی های مشابه را دریافت می کنند و مقادیر مشابه را بر می گردانند؟

در حقیقت این دو متد برابر نیستند و تفاوت هایی با یکدیگر دارند:

متد ()search نمی تواند یک پارامتر ورودی برای مشخص کردن نقطه ی شروع جستجو دریافت کند. 

متد ()indexOf نمی تواند جستجوی عبارات با قائده (regular expressions) را بر عهده بگیرد.

استخراج بخش هایی از رشته

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

  • slice(startend)
  • substring(startend)
  • substr(startlength)

متد ()slice (برش قسمتی از یک متن)

متد ()slice یک بخش از رشته را استخراج کرده و آن بخش استخراج شده را در یک رشته ی جدید بر می گرداند.

این متد از دو پارامتر بهره می برد: موقعیت شروع و موقعیت پایان.

مثال زیر نمونه ای از برش یک رشته از موقعیت 7 تا 12 رشته str را نشان می دهد.

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

اگر یک پارامتر منفی باشد، موقعیت از آخر رشته حساب می شود:

برش نمونه مثال زیر یک رشته از موقعیت 12- تا موقعیت 6- را برمی گرداند:

آموزش JavaScript

اگر شما پارامتر دوم متد ()slice را حذف کنید، این متد بقیه ی رشته را برش می زند و به عنوان خروجی برگشت می دهد:

;var res = str.slice(7)

و اگر موقعیت عددی منفی باشد، از آخر متن به اول متن بقیه رشته را برمی گرداند:

;var res = str.slice(-12)

متد ()substring

متد ()substring مانند متد ()slice می باشد. تنها فرق این دو این است که متد ()substring ایندکس های منفی را نمی پذیرد:

آموزش JavaScript

اگر شما پارمتر دوم را حذف کنید، ()substring نیز مانند متد ()slice بقیه ی رشته را برش می زند:

متد ()substr

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

آموزش طراحی سایت

اگر شما پارامتر دوم را حذف کنید، ()substr بقیه متن را برش می زند:

آموزش کار با StringMethods

اگر پارامتر ورودی متد ()substr منفی باشد، موقعیت از آخر رشته حساب می شود:

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

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

متد ()replace یک مقدار مشخص شده را با یک مقدار دیگر در متن جایگزین می کند:

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

همانطور که در خروجی مثال بالا می بینید، عبارت W3schools با عبارت Microsoft در متن جایگزین شده است.

آموزش طراحی سایت

بصورت پیش فرض، متد ()replace فقط اولی را جایگزین می کند:

آموزش کار با StringMethods

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

بصورت پیش فرض متد ()replace به کوچک و بزرگی حروف حساس می باشد و مثلا نوشتن MICROSOFT جواب نخواهد داد.

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

مثال زیر خروجی مثال بالا را نشان می دهد. همانطور که می بینید عمل جایگزینی صورت نگرفته چرا که عبارت MICROSOFT با عبارت Microsoft از دید متد ()replace متفاوت است.

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

برای غیر فعال کردن این ویژگی (case sensitive)، از یک عبارت با قائده همراه با برچسب  /i استفاده کنید.

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

خروجی مثال بالا به شکل زیر است.

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

برای جایگزین کردن تمام عناوین مشابه، از یک عبارت با قائده به همراه برچسب /g استفاده کنید:

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

خروجی مثال بالا به شکل زیر است.

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

تبدیل کردن یک رشته به حروف کوچک و بزرگ و بالعکس

در زبان جاوا اسکریپت با استفاده از متد ()toUpperCase شما می توانید تمامی کارکترهای رشته موردنظر را به حروف بزرگ تبدیل کنید:

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

همانطور که در خروجی زیر می بینید، عبارت Hello World! پس از اعمال متد ()toUpperCase به شکل HELLO WORLD! درآمد.

 آموزش طراحی سایت

همچنین در زبان جاوا اسکریپت شما با استفاده از متد ()toLowerCase می توانید تمامی کاراکترهای رشته موردنظر خودتان را به حروف کوچک تبدیل کنید:

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

خروجی مثال بالا به شکل زیر است:

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

متد ()concat

با استفاده از متد ()concat در زبان جاوا اسکریپت شما می توانید تعداد دو یا بیشتر از یک رشته را بهم متصل کنید:

آمورش رشته ها جاوا اسکریپت

همانطور که در خروجی زیر می بینید، مقادیر متغیرهای text1 و text2 با استفاده از متد ()contact به هم متصل و به عبارتی الحاق شده اند.

آموزش کار با StringMethods

متد ()concat همچنین می تواند به جای عملگر جمع استفاده شود. دو خط پایین کار مشابهی را انجام می دهند:

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

()String.trim

با استفاده از متد ()trim در جاوا اسکریپت شما می توانید فضای خالی را از دو طرف رشته مورد نظر حذف می کند:

آموزش StringMethods

تصویر زیر خروجی مثال بالا را نشان می دهد.

آموزش طراحی سایت

اگر شما نیاز دارید که اینترنت اکسپلورر 8 را نیز ساپورت کنید، می توانید از متد ()replace با یک عبارت با قائده (regular expression) استفاده کنید:

آموزش کار با متدهای رشته

خروجی مثال بالا به شکل زیر است:

آمورش رشته ها جاوا اسکریپت

شما همچنین می توانید از راه حل جایگزین کردن بالا برای اضافه کردن یک تابع برشی به نام String.prototype در جاوا اسکریپت استفاده کنید:

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

خروجی مثال بالا به شکل زیر است:

آموزش StringMethods

استخراج کاراکترهای رشته

سه متد برای استخراج کاراکترهای موردنظر از درون رشته ها وجود دارد:

  • charAt(position)
  • charCodeAt(position)
  • Property access [ ]

متد ()charAt

این متد یک ورودی عددی به نام ایندکس می پذیرد که موقعیت کاراکتری در رشته است که باید برگردانده شود.

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

در مثال زیر همانطور که می بینید کاراکتر H که اولین کاراکتر رشته str است به عنوان خروجی متد ()charAt در خروجی نمایش داده شده است.

متد ()charCodeAt

این متد یونیکد کاراکتر موردنظر را که با استفاده از ایندکس آن مشخص شده در یک رشته بر می گرداند:

این متد یک کد  UTF-16 را برمی گرداند، که یک عدد صحیح بین 0 تا 65535 است.

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

در خروجی مثال بالا مقدار یونیکد کارکتر H که ایندکس موقعیت آن برابر با 0 است برگردانده شده است.

آموزش کار با متدهای رشته

دسترسی به مشخصه

ECMAScript 5 (2009) اجازه ی دسترسی به کاراکترهای یک رشته را با استفاده از [ ] می دهد:

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

در مثال بالا دستور str[0]=”A”; باعث ایجاد خطا نمی شود، اما خب کار هم نمی کند. و دستور str[0] مقدار H را در خروجی برمی گرداند.

آموزش StringMethods

تبدیل کردن یک رشته به آرایه

در زبان جاوا اسکریپت شما با استفاده از متد ()split می توانید یک رشته را به یک آرایه تبدیل کنید و کاراکترهای درون رشته را درون یک آرایه قرار دهید. نکته ای که باید دقت کنید این هست که متد ()split یک ورودی می گیرد که این ورودی نقاط شکست رشته را مشخص می کند و درحقیقت جداکننده نامیده می شود.

آموزش StringMethods

در مثال بالا رشته str با استفاده از کاراکتر , شکسته شده و هر کاراکتر درون یک خانه از آرایه قرار می گیرد.

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

اگر در متد ()split جدا کننده حذف شده باشد، آرایه ای که بر می گردد شامل یک رشته ی کامل در ایندکس [0] خواهد بود.

اگر جداکننده "" باشد، آرایه ای که بر می گردد، آرایه ای با کاراکترهای تکی خواهد بود.

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

خروجی مثال بالا به شکل زیر است:

آموزش کار با متدهای رشته

آموزش طراحی سایت آموزش جاوا اسکریپت آموزش کار با متدهای رشته آموزش javascript

مقالات این دسته بندی