پردازش بخشهایی از رشته
به طور کلی با انجام عملیات زیر میتوانیم بخشهایی از رشته را پردازش کنیم :
1- خواندن یک کاراکتر از یک رشته
2- بدست آوردن قسمتی از یک رشته
3- جستجوی یک رشته درون رشته دیگر
4- قطعه قطعه کردن رشته (Split)
5- به هم چسباندن رشته (Join)
خواندن یک کاراکتر از یک رشته
برای خواندن کاراکتر بخصوصی از یک رشته تنها کافی است تا اندیس (مکان) آن را با استفاده از متد charAt() بخوانیم. مثلا برای آن که بخواهیم دومین کاراکتر یک رشته را بخوانیم، از charAt(1) استفاده میکنیم
نکته: در جاوااسکریپت اندیس آرایه ها از صفر شروع میشود. بنابراین اولین کاراکتر در اندیس صفر، یکمین کاراکتر در اندیس 1 و ... قرار دارند.
var str=”123456”;
document.write(str.charAt(1));
در مثال بالا عبارت 2 روی صفحه چاپ خواهد شد.
بدست آوردن قسمتی از یک رشته
برای بدست آوردن قسمتی از یک رشته کافی است تا اندیس کارکتر آغازین و اندیس کاراکتر پایانی را به متد substring() بدهیم تا قسمت مورد نظر را استخراج کند.
مثلا فرض کنید رشته ای داریم که میدانیم از کاراکتر 20 ام آن به بعد دیگر به درد نمیخورد و نیازی به ذخیره سازی آن نداریم. و تنها 20 کاراکتر اول آن رشته برایمان اهمیت دارد.
بنابراین برای استخراج کاراکترهای مفید به این شکل عمل میکنیم:
var str=”some large string ………………………………..”
str=str.substring(0,20);
نکته: در متد substring ترتیب اندیس ها مهم نیست. یعنی عبارت بالا را میتوان به صورت زیر هم نوشت:
str=str.substring(20,0);
این رفتار به این دلیل است که این متد در هر صورت عدد کوچکتر را بعنوان اندیس آغازین در نظر میگیرد.
جستجوی یک رشته درون رشته دیگر
بسیار وقتهاست که نیاز میشود بدانیم آیا رشته مورد نظر ما در درون خود حاوی رشته بخصوصی میباشد یا خیر.
مثلا فرض کنید که کاربری در جعبه متنی مربوط به رزومه کاری خود، انواع زبانهای برنامه نویسی که با آنها کار کرده است را نوشته است. اکنون ما میخواهیم بدانیم آیا او با زبان C# نیز کار کرده است یا خیر.
برای انجام این کار از متد indexOf() استفاده میکنیم. این متد در صورتی که رشته ای که ما به آن میدهیم در رشته اصلی موجود باشد، اندیس رشته مورد جستجو در رشته اصلی را برمیگرداند. در صورتی که رشته را پیدا نکند عدد -1 برخواهد گردانید
var str=”Java C# Asp.Net assembly Fox ”;
if( str.indexOf(“C#”) > 0 )
document.write(“you have worked with C#”);
نکته: از آنجایی که ممکن است در رشته ای که کاربر وارد کرده است، کلمه C# را با حروف کوچک وارد کرده باشد، لذا بهتر است ابتدا آنچه کاربر وارد کرده را به حروف کوچک تبدیل کنیم و سپس با حروف کوچک در آن جستجو کنیم
var str=”Java C# Asp.Net assembly Fox ”;
str=str.toLowerCase();
if( str.indexOf(“c#”) > 0 )
document.write(“you have worked with C#”);
نکته : در صورتی که رشته وارد شده حجیم باشد این کار چندان صحیح نیست چرا که تبدیل یک رشته بزرگ به حروف کوچک زمان بر است و در چنین شرایطی شاید بهتر باشد حالتهای ممکن را جستجو کنیم
var str=”Java C# Asp.Net assembly Fox ”;
if( str.indexOf(“c#”) > 0 || str.indexOf(“C#”) > 0)
document.write(“you have worked with C#”);
البته اگر تعداد حالتهای ممکن زیاد باشد بهتر است از همان روش اول استفاده نماییم. مثلا در جستجوی رشته Computer که از 8 کاراکتر تشکیل شده است، 16 حالت مختلف داریم!!!