از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
تفاوت بین substr() و substring() در جاوا اسکریپت
سرفصلهای مطلب
معرفی
در دنیای جاوا اسکریپت، راههای زیادی برای دستکاری رشتهها وجود دارد، زیرا JS روشهای زیادی برای انجام این کار ارائه میدهد. دو تا از آن روش ها هستند substr()
و substring()
. در نگاه اول، آنها ممکن است یکسان به نظر برسند – هر دو برای استخراج بخش هایی از یک رشته استفاده می شوند. با این حال، آنها تفاوت های ظریفی در روش کار خود دارند. هدف این بایت روشن کردن این دو روش، تفاوت آنها و زمان استفاده از هر کدام است.
substr()
این substr()
متد در جاوا اسکریپت برای استخراج بخشهایی از یک رشته استفاده میشود که از شاخص مشخص شده شروع میشود و سپس برای تعداد معینی از کاراکترها گسترش مییابد. نحو آن به شرح زیر است:
string.substr(startIndex, length)
این startIndex
پارامتر مورد نیاز است و مشخص می کند که زیر رشته ای که باید استخراج شود از کجا شروع شود. این length
پارامتر اختیاری است و تعداد کاراکترهایی که باید استخراج شوند را مشخص می کند. اگر length
ارائه نشده است، کاراکترها تا انتهای رشته استخراج خواهند شد.
در اینجا یک مثال است:
let text = "Hello, World!";
let result = text.substr(7, 5);
console.log(result); // Outputs: "World"
در این مثال، substr()
از نمایه 7 رشته شروع می شود و 5 کاراکتر را برمی گرداند و در نتیجه “World” می شود.
توجه داشته باشید: substr()
از نمایه سازی منفی پشتیبانی می کند. بنابراین اگر startIndex
یک عدد منفی است، از انتهای رشته حساب می شود.
زیر رشته ()
این substring()
از سوی دیگر، متد، کاراکترهای یک رشته بین دو شاخص را نیز استخراج می کند. نحو آن به شرح زیر است:
string.substring(indexStart, indexEnd)
هر دو indexStart
و indexEnd
پارامترها اختیاری هستند اگر indexEnd
داده نمی شود، کاراکترها تا انتهای رشته استخراج می شوند، درست مانند با substr()
.
در اینجا یک مثال است:
let text = "Hello, World!";
let result = text.substring(7, 12);
console.log(result); // Outputs: "World"
در این مثال، substring()
از شاخص 7 شروع می شود و به شاخص 12 ختم می شود که “World” را برمی گرداند.
مقایسه substr() و substring()
اگرچه هر دو substr()
و substring()
برای استخراج قطعات یک رشته استفاده می شود، آنها تفاوت های خود را دارند، بیشتر در روش عملکرد پارامترهایشان.
پارامتر دوم در substr()
تعداد کاراکترهایی است که باید استخراج شود، در حالی که در substring()
، آن است فهرست مطالب کجا باید استخراج را متوقف کرد.
همچنین، substr()
می تواند یک شاخص شروع منفی را بپذیرد، که از انتهای رشته شمارش می شود. با این حال، substring()
از شاخص های منفی پشتیبانی نمی کند. اگر منفی یا NaN
تصویب شود، به گونه ای رفتار می شود که گویی 0 است.
در اینجا یک قطعه کد این تفاوت ها را نشان می دهد:
let text = "Hello, World!";
let substrResult = text.substr(-6, 5);
console.log(substrResult); // Outputs: "World"
let substringResult = text.substring(-6, 5);
console.log(substringResult); // Outputs: "Hello"
شما می توانید آن را ببینید substr()
با شاخص شروع منفی به عنوان موقعیتی از انتهای رشته برخورد می کند و “World” را برمی گرداند، در حالی که substring()
با شاخص منفی 0 برخورد می کند و “سلام” را برمی گرداند.
زمان استفاده از هر کدام
من باید با گفتن آن شروع کنم را substr()
روش منسوخ شده است، بنابراین به طور پیش فرض باید از substring()
روش به جای با این حال، هنوز در مرورگرهای اصلی پشتیبانی می شود، بنابراین در صورت نیاز می توان از آن استفاده کرد، اما من آن را توصیه نمی کنم.
این substr()
این روش برای زمانی که می خواهید یک رشته را از انتها استخراج کنید عالی است. به عنوان مثال، اگر می خواهید چهار کاراکتر آخر یک رشته را بازیابی کنید، substr()
از آنجایی که از نمایه سازی منفی پشتیبانی می کند، روش پیشرو شماست.
let str = "Hello, World!";
let lastFour = str.substr(-4); // "rld!"
console.log(lastFour);
در این مورد، ما یک مقدار منفی را به آن منتقل می کنیم substr()
، که از انتهای رشته شروع به شمارش می کند. خروجی “rld!” خواهد بود.
از سوی دیگر، substring()
اگر به جای طول، با شاخص ها سر و کار دارید، ممکن است بهتر باشد. اگر نمایه های شروع و پایان زیررشته مورد نظر خود را می دانید، substring()
ممکن است انتخاب بهتری باشد
let str = "Hello, World!";
let world = str.substring(7, 12); // "World"
console.log(world);
در این مورد، ما ایندکس های شروع و پایان را به آن ها منتقل می کنیم substring()
. خروجی “World” خواهد بود.
نتیجه
در این بایت ما روش های دستکاری رشته را مقایسه کردیم substr()
و substring()
. هر دو روش نقاط قوت و موارد استفاده خاص خود را دارند. substr()
به طور معمول هنگام برخورد با طول ها، به خصوص از انتهای رشته ها بهتر است، در حالی که substring()
هنگام کار با شاخص های شناخته شده، شهودی تر است. اگرچه، توجه داشته باشید که substr()
از نظر فنی منسوخ شده است، بنابراین substring()
باید ترجیح داده شود.
(برچسبها برای ترجمه)# جاوا اسکریپت
منتشر شده در 1402-12-28 08:21:04