درس 19 از 24

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

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

وقتی با رشته‌ها (String) در جاوااسکریپت کار می‌کنید، خیلی وقت‌ها لازم می‌شود بررسی کنید آیا یک رشته شامل یک زیررشته (بخشی کوچک‌تر از همان رشته) هست یا نه.

مثلاً ممکن است بخواهید قبل از انجام یک کاری بررسی کنید آیا ورودی کاربر شامل یک کلمه یا کاراکتر مشخص هست یا نه. یکی از راه‌های انجام این کار استفاده از متد includes() است.

متد includes() برای بررسی این استفاده می‌شود که آیا یک رشته شامل یک زیررشته‌ی مشخص هست یا نه. اگر زیررشته داخل رشته پیدا شود، متد true برمی‌گرداند و اگر پیدا نشود false برمی‌گرداند.

سینتکس پایه:

string.includes(searchValue);

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

let phrase = "JavaScript is awesome!";
let result = phrase.includes("awesome");
console.log(result);  // true

خروجی:

true

در این مثال، کلمه‌ی awesome داخل رشته‌ی JavaScript is awesome! وجود دارد، پس includes() مقدار true برمی‌گرداند.

حساس بودن به حروف بزرگ/کوچک (Case-Sensitive)

نکته مهم این است که includes() case-sensitive است. یعنی برای تطابق، حروف باید دقیقاً با همان حالت (بزرگ/کوچک) باشند.

مثال:

let phrase = "JavaScript is awesome!";
let result = phrase.includes("Awesome");
console.log(result);  // false

خروجی:

false

چون Awesome (با A بزرگ) با awesome (با a کوچک) یکی نیست، نتیجه false می‌شود.

شروع جستجو از یک ایندکس مشخص

همچنین می‌توانید با پارامتر دوم مشخص کنید جستجو از کدام ایندکس شروع شود:

let text = "Hello, JavaScript world!";
let result = text.includes("JavaScript", 7);
console.log(result);  // true

خروجی:

true

اینجا جستجوی JavaScript از موقعیت ۷ شروع می‌شود و مطمئن می‌شود کاراکترهای قبل از این موقعیت نادیده گرفته شوند.

محدودیت includes()

متد includes() فقط true یا false برمی‌گرداند. یعنی:

  • نمی‌گوید زیررشته کجای رشته قرار دارد
  • نمی‌گوید زیررشته چند بار تکرار شده است

اگر این جزئیات را لازم دارید، متدهایی مثل indexOf() مناسب‌تر هستند.


سوالات

۱) متد includes() وقتی زیررشته داخل رشته پیدا شود چه چیزی برمی‌گرداند؟

  • ایندکس زیررشته
  • طول زیررشته
  • true
  • false

۲) کدام عبارت درباره includes() درست است؟

  • به حروف بزرگ/کوچک حساس نیست (case-insensitive)
  • به حروف بزرگ/کوچک حساس است (case-sensitive)
  • زیررشته پیدا شده را با مقدار دیگری جایگزین می‌کند
  • تعداد رخدادهای زیررشته را برمی‌گرداند

۳) خروجی کد زیر چیست؟

let message = "JavaScript is great!";
let result = message.includes("script");
console.log(result);
  • true
  • false
  • undefined
  • خطا می‌دهد