JavaScript – جستجوی رشتهها (String Search)
آخرین بروزرسانی:
در جاوااسکریپت، متدهای متعددی برای جستجو در رشتهها و یافتن مقادیر وجود دارد. این متدها کاربردهای مختلفی دارند، از پیدا کردن موقعیت یک عبارت گرفته تا بررسی وجود یک مقدار خاص در رشته.
متد indexOf()
- این متد موقعیت اولین وقوع یک رشته در رشته اصلی را برمیگرداند.
- اگر مقدار یافت نشد، مقدار
-1
باز میگردد.
let text = "Please locate where 'locate' occurs!";
let index = text.indexOf("locate"); // خروجی: 7
نکته:
- شمارش موقعیتها از صفر آغاز میشود.
- امکان مشخص کردن نقطه شروع جستجو با پارامتر دوم وجود دارد:
let index = text.indexOf("locate", 15); // جستجو از موقعیت 15
متد lastIndexOf()
- این متد موقعیت آخرین وقوع یک عبارت را برمیگرداند.
- اگر مقدار یافت نشد، مقدار
-1
باز میگردد.
let text = "Please locate where 'locate' occurs!";
let index = text.lastIndexOf("locate"); // خروجی: 21
نکته:
- میتوانید نقطه شروع جستجو (برعکس از انتهای رشته) را با پارامتر دوم مشخص کنید:
text.lastIndexOf("locate", 15); // جستجو از موقعیت 15 به سمت ابتدا
متد search()
- برای یافتن موقعیت اولین وقوع یک عبارت یا یک الگوی Regular Expression استفاده میشود.
- بر خلاف
indexOf()
، نمیتواند پارامتر دوم (نقطه شروع) بگیرد.
let text = "Please locate where 'locate' occurs!";
let index = text.search("locate"); // خروجی: 7
تفاوت search() و indexOf():
search()
از عبارات با قاعده (Regular Expressions) پشتیبانی میکند.indexOf()
نمیتواند از عبارات با قاعده استفاده کند.
text.search(/locate/); // خروجی: 7
متد match()
- این متد نتایج جستجو با یک عبارت یا الگوی Regular Expression را به صورت آرایه بازمیگرداند.
- اگر مقدار یافت نشود، مقدار
null
باز میگردد.
let text = "The rain in SPAIN stays mainly in the plain";
let result = text.match("ain"); // خروجی: ["ain"]
جستجوی گلوبال (global):
- برای جستجوی همه وقوعها از
g
استفاده کنید:
text.match(/ain/g); // خروجی: ["ain", "ain", "ain"]
جستجوی حساس به حروف کوچک و بزرگ:
- از
i
برای غیرفعال کردن حساسیت استفاده کنید:
text.match(/ain/gi); // خروجی: ["ain", "AIN", "ain"]
متد matchAll()
- این متد یک Iterator از نتایج جستجو برمیگرداند.
- در صورت استفاده از Regular Expression، باید
g
فعال باشد.
const text = "Cats are great. Cats are lovely.";
const iterator = text.matchAll(/Cats/g);
for (const match of iterator) {
console.log(match); // هر مطابقت را نمایش میدهد
}
نکات:
- این متد در ES2020 معرفی شده است.
- در Internet Explorer پشتیبانی نمیشود.
متد includes()
- بررسی میکند که آیا رشته شامل مقدار مشخصی هست یا نه.
- نتیجه
true
یاfalse
بازمیگرداند.
let text = "Hello world, welcome to the universe.";
text.includes("world"); // خروجی: true
text.includes("World"); // خروجی: false (حساس به حروف)
شروع جستجو از موقعیت مشخص:
text.includes("world", 12); // خروجی: false
متد startsWith()
- بررسی میکند که آیا رشته با مقدار مشخصی شروع میشود یا خیر.
- نتیجه
true
یاfalse
بازمیگرداند.
let text = "Hello world, welcome to the universe.";
text.startsWith("Hello"); // خروجی: true
text.startsWith("world"); // خروجی: false
شروع جستجو از موقعیت مشخص:
text.startsWith("world", 6); // خروجی: true
متد endsWith()
- بررسی میکند که آیا رشته با مقدار مشخصی به پایان میرسد یا خیر.
let text = "John Doe";
text.endsWith("Doe"); // خروجی: true
text.endsWith("John"); // خروجی: false
بررسی مقدار مشخصی از کاراکترها:
let text = "Hello world, welcome to the universe.";
text.endsWith("world", 11); // خروجی: true
نتیجهگیری
این متدها ابزارهایی قدرتمند برای جستجو و بررسی رشتهها در جاوااسکریپت ارائه میدهند. با استفاده از هر کدام از این متدها، میتوانید به آسانی عملیات موردنظر خود را روی رشتهها اعمال کنید.
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام