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

متدهای رشته ها به شما کمک می کنند که با رشته ها کار کنید. در اینجا چند نمونه از متدهای رایج کار با رشته ها در جاوا اسکریپت آمده است، لیست و شرح کامل متدهای رشته ها در بخش مراجع جاوا اسکریپت پیشرفته خواهد آمد.

یافتن یک رشته در درون رشته دیگر

متد () indexOf ایندکس (موضع قرارگیری) اولین وقوع یک متن خاص در یک رشته را بر می گرداند. مثال:

ترجمه متون کامپیوتر و فنی

متد () lastIndexOf ایندکس آخرین وقوع متنی خاص در داخل رشته را بر می گرداند. مثال:

ترجمه متون کامپیوتر و فنی

اگر متن مشخص شده در متد یافت نشود، هر دوی متدهای فوق مقدار 1- را بر می گردانند. جاوا اسکریپت موضع قرارگیری را از صفر شمارش می کند. بنابراین 0 اولین موضع در یک رشته است، 1 دومین موضع و به همین ترتیب ... هر دوی این متدها پارامتر دومی می گیرند که به عنوان موضع شروعی جستجو عمل می کند.

جستجو به دنبال یک رشته در رشته ای دیگر

متد () search رشته را به دنبال مقدار مشخص شده جستجو می کند و موضع همسان آن را بر می گرداند. مثال:

ترجمه متون کامپیوتر و فنی

توجه کردید: هر دو متد () indexOf و () search مساوی هستند. آنها آرگومان (پارامترهای) یکسانی گرفته و مقدار مشابهی را بر می گرداند. این دو متد مساوی هستند اما متد () search می تواند مقادیر جستجوی خیلی قدرتمندتری را به خود بگیرد. در فصل عبارت های معمولی بیشتر در مورد این متد بحث می شود.

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

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

• slice(start, end)

• substring(start, end)

• substr(start, length)

متد () slice

این متد بخشی از رشته را استخراج کرده و بخش استخراج شده را به عنوان یک رشته جدید بر می گرداند. این متد دو پارامتر می گیرد: ایندکس (موضع) شروعی و ایندکس (موضع) پایانی. در مثال زیر بخشی از رشته از موضع 7 تا موضع 13 استخراج می شود:

ترجمه متون کامپیوتر و فنی

نتیجه اجرای این متد کلمه Banana خواهد بود.

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

در مثال زیر بخشی از رشته از موضع 12- تا 6- استخراج می شود. باز هم نتیجه banana خواهد بود.

ترجمه متون کامپیوتر و فنی

اگر پارامتر دوم گنجانده نشود، متد مابقی رشته را استخراج خواهد کرد. مثال:

ترجمه متون کامپیوتر و فنی

یا اگر منفی باشد، از آخر می شمارد. مثال:

ترجمه متون کامپیوتر و فنی

موضع منفی در IE 8 و قبل از آن پشتیبانی نمی شود.

متد () substring

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

ترجمه متون کامپیوتر و فنی

حاصل اجرای این مثال نیز Banana است. اگر از درج پارامتر دوم در این متد اجتناب شود، متد مابقی رشته را استخراج خواهد کرد.

متد () substr

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

ترجمه متون کامپیوتر و فنی

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

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

متد () replace برای جایگزین کردن یک مقدار خاص با مقداری دیگر در رشته استفاده می شود. مثال:

ترجمه متون کامپیوتر و فنی

این متد می تواند عبارت معمولی به عنوان مقدار جستجو بپذیرد.

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

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

ترجمه متون کامپیوتر و فنی

یک رشته را می توان با استفاده از متد () toLowerCase به حروف کوچک تبدیل کرد. مثال:

ترجمه متون کامپیوتر و فنی

متد () concat

این متد دو یا چند رشته را به هم وصل می کند. مثال:

ترجمه متون کامپیوتر و فنی

متد () concat را می توان بجای اپراتور + به کار برد. دو خط کد زیر کار یکسانی انجام می دهند:

ترجمه متون کامپیوتر و فنی

همه متدهای رشته یک رشته جدید را بر می گردانند. آنها رشته اصلی را ویرایش و اصلاح نمی کنند. به طور رسمی می توان گفت: رشته غیر فانی است. رشته را نمی توان تغییر داد، بلکه فقط می توان آن را جایگزین کرد.

استخراج حروف رشته

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

• charAt (position)

• charCodeAt (position)

متد () charAt

این متد حرفی را در یک ایندکس (موضع) مشخص شده در یک رشته بر می گرداند. مثال:

ترجمه متون کامپیوتر و فنی

متد () charCodeAt

این متد شماره یونیکد حرف مشخص شده در ایندکس را از رشته بر می گرداند. مثال:

ترجمه متون کامپیوتر و فنی

دسترسی به رشته به عنوان یک آرایه عملی ایمن نیست

شما ممکن است کدی شبیه زیر را دیده باشید، که برای دسترسی به رشته به عنوان یک آرایه استفاده می شود:

ترجمه متون کامپیوتر و فنی

این کاری ایمن نیست و نتیجه اش غیر قابل پیش بینی است:

  • در همه موتورهای جستجوگر پشتیبانی نمی شود (مثلا اینترنت اکسپلورر 7 یا قدیمی تر)
  • موجب می شود که رشته به صورت آرایه به نظر بیاید (در صورتی که چنین نیست)
  • str[0] = "H" خطا نمی دهد اما عمل هم نمی کند.

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

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

برای تبدیل رشته به آرایه از متد () split استفاده می شود. مثال:

ترجمه متون کامپیوتر و فنی

اگر از جداساز استفاده نشود، آرایه برگشتی حاوی کل رشته در ایندکس [0] خواهد بود. اگر جدا ساز "" باشد، آرایه برگشتی آرایه ای از یک حرف منفرد خواهد بود. مثال:

ترجمه متون کامپیوتر و فنی