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

javascript string search
20 آبان 1403

آشنایی با جستجوی رشته در جاوا اسکریپت

جستجوی رشته‌ها یکی از نیازهای متداول در توسعه نرم‌افزار است، که در جاوا اسکریپت به روش‌های مختلفی می‌توانید آن را انجام دهید. دانستن این روش‌ها به شما کمک می‌کند تا بتوانید به راحتی بخش‌های مورد نیاز از یک متن را پیدا و مدیریت کنید.

یکی از ساده‌ترین راه‌های جستجوی رشته در جاوا اسکریپت استفاده از متد indexOf است. این متد به سادگی اولین موقعیت وقوع یک زیررشته را در یک رشته بزرگ‌تر پیدا می‌کند. اگر زیررشته مورد نظر یافت نشد، این متد مقدار -1 را برمی‌گرداند.

علاوه بر indexOf، می‌توانید از متد includes نیز استفاده کنید. این تابع به ما می‌گوید که آیا یک زیررشته مشخص در رشته بزرگ‌تر موجود است یا نه و یک مقدار true یا false برمی‌گرداند.

با پیشرفت در جاوا اسکریپت، نیاز به روش‌های پیشرفته‌تری هم داشتیم که متد search یکی از این‌هاست. این متد با استفاده از عبارات منظم (regular expressions) برای جستجوی پیشرفته رشته‌ها استفاده می‌شود که باعث می‌شود تطابق‌های پیچیده‌تر و دقیق‌تری را انجام دهید.

کد مثال برای جستجوی رشته

const text = 'JavaScript is a powerful language.';
const searchTerm = 'powerful';

// با استفاده از indexOf
const index = text.indexOf(searchTerm);
console.log('indexOf:', index);

// با استفاده از includes
const includes = text.includes(searchTerm);
console.log('includes:', includes);

// با استفاده از search و regex
const regex = /powerful/;
const searchResult = text.search(regex);
console.log('search:', searchResult);

توضیح خط به خط کد

const text = 'JavaScript is a powerful language.';
ایجاد یک رشته که حاوی متن مورد جستجو است.
const searchTerm = 'powerful';
زیررشته‌ای که به دنبال آن در متن اصلی هستیم.
const index = text.indexOf(searchTerm);
استفاده از متد indexOf برای یافتن اولین محل وقوع زیررشته و نگهداری آن در متغیر index.
console.log('indexOf:', index);
چاپ نتیجه جستجوی indexOf در کنسول.
const includes = text.includes(searchTerm);
بررسی موجودیت زیررشته با متد includes و نگهداری نتیجه در متغیر includes.
console.log('includes:', includes);
چاپ نتیجه بررسی includes در کنسول.
const regex = /powerful/;
ایجاد عبارت منظم برای جستجوی پیشرفته.
const searchResult = text.search(regex);
استفاده از متد search برای جستجو با عبارات منظم و نگهداری نتیجه در متغیر searchResult.
console.log('search:', searchResult);
چاپ نتیجه جستجوی search با regex در کنسول.

سوالات متداول

؟

چرا از includes به جای indexOf استفاده کنیم؟

؟

چطور می‌توانیم از regex برای جستجوی پیچیده‌تر استفاده کنیم؟

؟

آیا متدهای indexOf و includes حساس به حروف بزرگ و کوچک هستند؟