درس 20 از 24

استخراج زیررشته در جاوااسکریپت با slice() | آموزش کامل Substring

بخش: کار با رشته در جاوااسکریپت

وقتی با رشته‌ها در جاوااسکریپت کار می‌کنید، خیلی وقت‌ها لازم می‌شود بخشی یا یک زیررشته را از یک رشته‌ی بزرگ‌تر استخراج کنید.

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

جاوااسکریپت برای این کار چندین متد در اختیار شما می‌گذارد که یکی از پرکاربردترین آن‌ها متد slice() است.

متد slice() به شما اجازه می‌دهد بخشی از یک رشته را استخراج کنید و یک رشته‌ی جدید برمی‌گرداند، بدون اینکه رشته‌ی اصلی را تغییر دهد. این متد دو پارامتر می‌گیرد: ایندکس شروع و ایندکس پایانِ اختیاری.

سینتکس پایه به این شکل است:

string.slice(startIndex, endIndex);

startIndex موقعیتی است که استخراج از آنجا شروع می‌شود.
endIndex جایی است که استخراج در آنجا تمام می‌شود. اگر این مقدار داده نشود، slice() تا انتهای رشته استخراج می‌کند.

بیایید یک مثال ساده برای استخراج بخشی از یک رشته را ببینیم:

let message = "Hello, world!";
let greeting = message.slice(0, 5);
console.log(greeting);  // Hello
"Hello"

در این مثال، slice(0, 5) کاراکترها را از ایندکس 0 شروع می‌کند و تا قبل از ایندکس 5 استخراج می‌کند. در نتیجه، کلمه‌ی Hello استخراج می‌شود.

اگر پارامتر دوم را حذف کنید، slice() همه‌چیز را از ایندکس شروع تا انتهای رشته استخراج می‌کند:

let message = "Hello, world!";
let world = message.slice(7);
console.log(world);  // world!
"world!"

در اینجا، slice(7) رشته را از ایندکس 7 تا انتهای رشته استخراج می‌کند و نتیجه world! خواهد بود.

همچنین می‌توانید از اعداد منفی به‌عنوان ایندکس استفاده کنید. وقتی از عدد منفی استفاده می‌کنید، شمارش از انتهای رشته به سمت عقب انجام می‌شود:

let message = "JavaScript is fun!";
let lastWord = message.slice(-4);
console.log(lastWord);  // fun!
"fun!"

در این حالت، slice(-4) چهار کاراکتر آخر رشته را استخراج می‌کند و نتیجه fun! می‌شود.

فرض کنید بخواهید بخشی از وسط یک رشته را استخراج کنید. می‌توانید هم ایندکس شروع و هم ایندکس پایان را بدهید تا دقیقاً مشخص کنید کدام بخش از رشته را می‌خواهید:

let message = "I love JavaScript!";
let language = message.slice(7, 17);
console.log(language);  // JavaScript
"JavaScript"

در اینجا، slice(7, 17) زیررشته‌ای را استخراج می‌کند که از ایندکس 7 شروع می‌شود و درست قبل از ایندکس 17 پایان می‌یابد، که همان کلمه‌ی JavaScript است.

متد slice() ابزار قدرتمندی برای استخراج بخش‌هایی از یک رشته در جاوااسکریپت است.

شما ایندکس شروع و پایان را مشخص می‌کنید، و این متد یک رشته‌ی جدید برمی‌گرداند که شامل بخش استخراج‌شده است.

با امکان استفاده از ایندکس‌های مثبت، منفی، و همچنین حذف ایندکس پایان، می‌توانید آن را در موقعیت‌های مختلف به کار ببرید، بدون اینکه رشته‌ی اصلی تغییر کند.


سوالات

خروجی کد زیر چه خواهد بود؟

let text = "JavaScript is awesome!";
let result = text.slice(0, 9);

console.log(result);
  • JavaScript
  • JavaScrip
  • Java
  • awesome

کدام‌یک از عبارت‌های زیر درباره‌ی متد slice() درست است؟

  • رشته‌ی اصلی را تغییر می‌دهد.
  • یک رشته‌ی جدید شامل بخش استخراج‌شده برمی‌گرداند.
  • ایندکس پایان را هم در زیررشته‌ی استخراج‌شده شامل می‌شود.
  • با ایندکس‌های منفی کار نمی‌کند.

کد زیر چه چیزی را برمی‌گرداند؟

let sentence = "Learning JavaScript is fun!";
let extracted = sentence.slice(9, -5);

console.log(extracted);
  • JavaScript is
  • JavaScript
  • Learning
  • fun!