جدا کردن زیر رشته ای از رشته دیگر چگونه است؟
جدا کردن زیر رشته ای از رشته دیگر چگونه است؟
جدا کردن زیر رشته ای از رشته دیگر چگونه است؟
دو تابع براي جدا کردن زیر رشته ها از رشته اصلی وجود دارد .substring() و .slice()هر دو این متد ها یک یا دو آرگومان را می پذیرند که آرگومان اول محل شروع و آرگومان دوم محل پایان را تعیین می کند. (البته خودآرگومان دوم جز زیر رشته نخواهد بود.) اگر آرگومان دوم نادیده گرفته شود طول رشته درنظر گرفته خواهد شد. چیزي که این دو متد بر می گرداند زیر رشته حاصل است:
var oStringObject = new String(“hello world”);
alert(oStringObject.slice(3)); //outputs “lo world”
alert(oStringObject.substring(3)); //outputs “lo world”
alert(oStringObject.slice(3, 7)); //outputs “lo w”
alert(oStringObject.substring(3,7)); //outputs “lo w”
سوالی که دراینجا پیش می آید این است که چرا دقیقا این دو تابع بک کار را انجام می دهند ؟ در حقیقت تفاوت آن ها در کار با آرگومان هاي منفی است. براي متد slice()آرگومان منفی با طول رشته جمع شده و حاصل آن به عنوان آرگومان اصلی درنظر گرفته می شود. در حالی که براي تابع sustring() مقادیر منفی به عنوان صفر درنظر گرفته می شود.(درواقع نادیده گرفته می شوند.)
مثال ها:
var oStringObject= new String(“hello world”);
alert(oStringObject.slice(-3)); //outputs “rld”
alert(oStringObject.substring(-3)); //outputs “hello world”
alert(oStringObject.slice(3, -4)); //outputs “lo w”
alert(oStringObject.substring(3,-4)); //outputs “hel”
در خط دوم از کد بالا چون آرگومان منفی است طول رشته با 3- جمع می شود که حاصل 8 است درواقع دستور زیر اجرا میشود
oStringObject.slice(8);
که از خانه هشتم رشته تا انتهاي آرایه را بر می گرداند. اما در خط سوم آرگومان منفی صفر درنظر گرفته می شود. یعنی:
oStringObject.substring(0);
در خط چهارم آرگومان دوم با طول رشته جمع شده و حاصل آن یعنی 8 به عنوان آرگومان دوم در نظرگرفته می شود. یعنی:
oStringObject.slice(3,8);
و در خط پنجم حاصل به صورت زیر محاسبه می شود:
oStringObject.substring(3,0);
جاوااسکریپت از متدي به نام substr() نیز براي جداکردن زیر رشته ها استفاده می کند.این متد دو آرگومان می گیرد که اولی موقعیت شروع و دومی طول زیر رشته اي که می خواهیم از رشته اصلی جدا کنیم خواهد بود. در صورتی که آرگومان دوم ذکر نشود عمل جداکردن تا انتهاي رشته خواهد بود. به مثال زیر توجه کنید:
var myString = “javascript”;
var mySubStr = myString.substr(0,4);
alert(mySubStr); // output “java”
منبع : انجمن علمی مهندسی فناوری اطلاعات دانشگاه پیام تور مرکز اران و بید گل
برای اموزش های ویدیویی زبان جاوا اسکیریپت به بستر ویدیو های اموزشی بروید