با سلام، در این قسمت از سری آموزشی برنامه نویسی جاوا اسکریپت، به بررسی متدهای (توابع) مخصوص رشته ها می پردازیم و برای هر کدام یک مثال خواهیم زد.
متد length طول یک رشته (تعداد کاراکتر ها) را به ما برمیگرداند:
var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var sln = txt.length;
خروجی این کد عدد 26 است زیرا رشته ی ما 26 کاراکتر داشته است.
متد ()indexOf به شما کمک می کند تا ایندکس (index) اولین رخداد از رشته ی مورد نظرتان را پیدا کنید. منظور من از ایندکس این است که این متد خود کلمه را به شما برنمی گرداند بلکه مکان عددی آن (یعنی همان ایندکس) را به شما می دهد. مثال:
var str = "Please locate where 'locate' occurs!"; var pos = str.indexOf("locate");
خروجی این کد عدد 7 خواهد بود. چرا؟ قبلا هم گفته بودیم که جاوا اسکریپت، ایندکس ها را از صفر می شمارد. بنابراین اگر از ابتدای رشته شروع کنید، حرف p در کلمه ی please می شود ایندکس اول، حرف L می شود ایندکس دوم و ... تا زمانی که به حرف L در اولین کلمه ی Locate برسد.
دستور ()lastIndexOf آخرین رخداد از رشته را به شما می دهد. مثال:
var str = "Please locate where 'locate' occurs!"; var pos = str.lastIndexOf("locate");
خروجی این کد عدد 21 خواهد بود. آخرین رخداد کلمه ی locate می شود دومین باری که در رشته ی ما آمده است. L در locate دومی، شماره ی 21 خواهد بود.
نکته: اگر هر کدام از این متدها به جوابی نرسد (رشته ی مورد نظر را پیدا نکند) عدد -1 را برمیگرداند.
نکته: هر دو متد ()lastIndexOf و ()indexOf پارامتر دومی میگیرند که نشان دهنده ی نقطه ی شروع جست و جو است. مثال:
var str = "Please locate where 'locate' occurs!"; var pos = str.indexOf("locate",15);
این کد میگوید جست و جو را از ایندکس 15 شروع کن.
با استفاده از متد ()search نیز می توانید یک رشته را درون رشته ای دیگر پیدا کنید:
var str = "Please locate where 'locate' occurs!"; var pos = str.search("locate");
خروجی باز هم 7 خواهد بود.
سوال: فرق بین این دو متد چیست؟ آیا اصلا فرقی وجود دارد؟
بله، این دو متد یکی نیستند:
این متد قسمتی از یک رشته را استخراج کرده و آن قسمت استخراج شده را بر میگرداند. این متد دو پارامتر می گیرد: یکی ایندکس شروع رشته و دیگری ایندکس پایان رشته (رشته ی استخراج شده شامل خود ایندکس پایانی نمی شود). مثال
var str = "Apple, Banana, Kiwi"; var res = str.slice(7, 13);
در این کد چنان تعیین کرده ایم که از ایندکس 7 الی ایندکس 13 برش بزند (خود 13 را شامل نمی شود) و به ما برگرداند. خروجی این کد رشته ی "Banana" خواهد بود.
هشدار: باز هم میگویم که جاوا اسکریپت شمارش را صفر شروع می کند.
نکته ی اول: اگر به این متد پارامتر های منفی بدهید، شمارش از آخر رشته شروع می شود. مثال:
var str = "Apple, Banana, Kiwi"; var res = str.slice(-12, -6);
خروجی این کد رشته ی "Banana" می باشد.
نکته ی دوم: اگر پارامتر دوم را خالی قرار دهید، جاوا اسکریپت تا آخر رشته را برمیگرداند:
<!DOCTYPE html> <html> <body> <h2>JavaScript String Methods</h2> <p>The slice() method extract a part of a string and returns the extracted parts in a new string:</p> <p id="demo"></p> <script> var str = "Apple, Banana, Kiwi"; var res = str.slice(7); document.getElementById("demo").innerHTML = res; </script> </body> </html>
مشاهده ی خروجی کد در ادیتور آنلاین جاوا اسکریپت.
خروجی کد رشته ی "Banana, Kiwi" خواهد بود.
هشدار: پارامتر های منفی برای این متد در IE8 و قبل تر کار نمی کنند.
متد ()substring نیز دقیقا مانند متد ()slice است اما مقادیر منفی نمی گیرد.
این متد دقیقا مشابه ()slice است با این تفاوت که پارامتر دوم به جای مشخص کردن ایندکس پایانی، طول رشته ی استخراج شده را مشخص می کند. مثال:
<!DOCTYPE html> <html> <body> <h2>JavaScript String Methods</h2> <p>The substr() method extract a part of a string and returns the extracted parts in a new string:</p> <p id="demo"></p> <script> var str = "Apple, Banana, Kiwi"; var res = str.substr(7,6); document.getElementById("demo").innerHTML = res; </script> </body> </html>
خروجی این کد رشته ی "Banana" می باشد. مشاهده ی خروجی این کد در ادیتور آنلاین جاوا اسکریپت.
در واقع این کد میگوید از ایندکس 7 شروع به بُریدن کن و تا زمانی ادامه بده که رشته ی استخراج شده ی ما 6 کاراکتر بشود (کلمه ی banana شش حرف دارد).
نکته: اگر مانند متدهای ()slice و ()substring به این متد پارامتر دوم ندهید تا آخر رشته را برمیگرداند و اگر پارامتر منفی باشد، شمارش را از آخر رشته شروع می کند. مثال:
<!DOCTYPE html> <html> <body> <h2>JavaScript String Methods</h2> <p>The substr() method extract a part of a string and returns the extracted parts in a new string:</p> <p id="demo"></p> <script> var str = "Apple, Banana, Kiwi"; var res = str.substr(-4); document.getElementById("demo").innerHTML = res; </script> </body> </html>
خروجی این کد رشته ی "Kiwi" می باشد. مشاهده ی خروجی در ادیتور آنلاین جاوا اسکریپت.
ادامه ی متدهای رشته ها را در جلسه ی بعدی دنبال خواهیم کرد.
در پناه حق.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.