جاوا اسکریپت به زبان ساده - جلسه هجدهم - استرینگ‌ها (پیشرفته)

سه‌شنبه ۱ خرداد ۱۳۹۷ - ۱۹:۰۰
مطالعه 4 دقیقه
استرینگ‌ها که در جلسات گذشته مورد بررسی قرار گرفت، ابزار‌های منحصر به فرد زیادی دارند که به کمک آن‌ها می‌توان استفاده‌‌ی خلاقانه‌تری از این نوع داده‌ها کرد. در این جلسه به متدهای مربوط به استرینگ‌ها خواهیم پرداخت.
تبلیغات

در جلسات ابتدایی آموزش جاوا اسکریپت با استرینگ‌ها و نحوه نوشتن آن‌ها آشنا شدیم. اما اگر بخواهید در یک متغیر استرینگی تغییری ایجاد کنید یا کلمه خاصی را از یک استرینگ جدا کنید، چه کاری باید انجام دهید؟ در این جلسه به بررسی چنین موضوعاتی می‌پردازیم. با زومیت همراه شوید.

پیدا کردن مکان یک کلمه در یک جمله:

فرض کنید که در یک متن، دنبال لغت خاصی هستید و می‌خواهید اولین جایی که این لغت ظاهر شده است را ببینید. برای این کار یک متد بسیار ساده به نام indexOf() وجود دارد.

تنها کافی است تا بعد از متغیر استرینگ این متد را به کار ببرید.

در مثال زیر ابتدا متن خود را در متغیر str ذخیره کرده‌ایم و سپس با متد indexOf شماره و شماره‌ای که این لغت در آن ذخیره شده است را پیدا کرده‌ایم.

var str = "Please locate where 'locate' occurs!";

var pos = str.indexOf(“locate");

اگر بخواهیم آخرین نقطه‌ای که این کلمه استفاده شده است را پیدا کنیم نیز از متد lastIndexOf(“locate"); استفاده می‌کنیم.

در صورتی که متن مورد نظرمان پیدا نشود، عدد -۱ به عنوان پاسخ بازگردانده خواهد شد.

دقت کنید که خروجی متد indexOf عدد است! مثلا در این متد، عدد ۷ به عنوان خروجی بازگردانده خواهد شد. یعنی هفتمین کلمه (با احتساب اسپیس‌ها) بازگردانده خواهد شد.

جدا کردن یک تکه از متن:

گاهی می‌خواهیم یک تکه از متن را جدا کنیم! این کار از طریق متد indexOf که تاکنون آموخته‌ایم، امکان‌پذیر نیست. این متدها فقط محل وجود یک متن را بررسی می‌کنند. برای تکه تکه کردن متن و به دست آوردن یک بخش از آن از سه متد زیر استفاده می‌شود.

slice(start, end)

substring(start, end)

substr(start, length)

در متد slice نقطه شروع کلمه را به عنوان پارامتر اول و نقطه پایان کلمه را به عنوان پارامتر دوم می‌نویسیم.

برای مثال فرض کنید که یک جمله استرینگی به صورت متغیر str داریم. حالا می‌خواهیم کلمه Banana را از این استرینگ جدا کنیم. برای این کار می‌توانیم از متد slice استفاده کنیم. این متد همانطور که گفتیم محل اولین کلمه و آخرین کلمه را می‌گیرد و هر چه در بین این دو عدد وجود دارد را به ما خروجی می‌دهد.

var str = "Apple, Banana, Kiwi";

var res = str.slice(7, 13);

مثلا اگر شروع حرف ما در جمله بالا B باشد،‌کلمه B به عنوان ششمین کلمه (با احتساب صفر) در این استرینگ است. حرف آخر کلمه مورد نظر ما نیز a است که حرف یازدهم از کل استرینگ محسوب می‌شود. پس متغیر اول شش و متغیر دوم ۱۲ است! حالا این دو متغیر را در متد اسلایس می‌نویسیم و در خروجی متن مورد نظرمان را دریافت می‌کنیم!

توجه داشته باشید می‌توانید جستجو برای بریدن کلمات از جمله را از آخر یک استرینگ نیز شروع کنید.برای این‌کار  تنها کافی است تا به جای عدد مثبت در پارامترها، عدد منفی وارد کنید! مشاهده می‌کنید که جستجو از کلمه آخر به اول آغاز می‌شود.

var str = "Apple, Banana, Kiwi";

var res = str.slice(-12, -6);

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

var str = "hello, mohammad hossein";

var finalResponse = str.slice(7);

alert(finalResponse) // خروجی تمامی کلمات داخل استرینگ بعد از  hello خواهد بود

متد substring() 

این متد مشابه دقیقا متد اسلایس عمل می‌کند. تنها باید توجه کنید که مقادیر منفی نمی‌توانید به عنوان پارامتر بدان بدهید. این بدین معناست که نمی‌توانید جستجو را از انتهای استرینگ‌ها آغاز کنید.

متد ()substr

این متد هم مانند متدهای قبلی عمل می‌کند! منتها پارامتر دومی که می‌گیرد عدد و مکان آخرین لغت مورد نظر نیست بلکه تعداد کلماتی است که بعد از پارامتر اول شمرده می‌شود! 

var str = "Apple, Banana, Kiwi";

var res = str.substr(7, 6);

خروجی باز هم کلمه Banana خواهد بود که در واقع ۶ کلمه بعد از شروع جستجو (کلمه شماره هفتم یعنی کلمه b در لغت banana) است. 

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

جایگزین کردن یک کلمه یا متن در استرینگ؛

اگر بخواهید بخشی از یک متن را عوض کنید و متن دیگری بنویسید متد replace کارگشای شما است.

str = "Please visit Microsoft!";

var replacedSentese = str.replace("Microsoft", "W3Schools");

در این متد، پارامتر اول چیزی است که می‌خواهیم عوض شود و پارامتر دوم چیزی است که می‌خواهیم جایگزین پارامتر اول شود! به همین سادگی!

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

یک متد دیگر متن‌ها در جاوا اسکریپت، تبدیل تمامی حروف به حروف بزرگ یا برعکس است! متد انجام این کار نیز به سادگی انجام می‌شود؛ تنها کافی است بعد از متغیر حاوی متن دستور نقطه toLowerCase() برای تبدیل همه حروف به حروف کوچک یا  toUpperCase() برای تبدیل همه حروف به حرف بزرگ استفاده کنید.

var text1 = "Hello World!";       // String

var text2 = text1.toUpperCase();  // text2 is text1 converted to upper

var text1 = "Hello World!";       // String

var text2 = text1.toLowerCase();  // text2 is text1 converted to lower

متد()concat

متد concat() برای چسباندن دو متن جدا از هم به یکدیگر استفاده می‌شود. برای استفاده از این متد باید دو استرینگ مجزا داشته باشیم. مثلا فرض کنیم دو استرینگ به صورت زیر داریم:

var name = "mohammad hosssein ";

var family = "malek!";

var nameAndFamily = name.concat(family);

در این متد، استرینگ نوشته شده به عنوان پارامتر concat (یعنی family) به انتهای استرینگی که متد concat را روی آن فراخوانی کرده‌ایم (یعنی name) می‌چسبد.

سخن پایانی:

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

تبلیغات
داغ‌ترین مطالب روز

نظرات

تبلیغات