آموزش جستجو در رشته های جاوا اسکریپت
متدهای جستجو در رشته ها عبارتند از:

بررسی متد رشته ایِ indexOf() در جاوا اسکریپت
متد indexOf() اندیس( یا موقعیت) اولین تطابق یک رشته، در یک رشته ی دیگر را برمی گرداند:
مثال شماره 1
let text = "Please locate where 'locate' occurs!";
let index = text.indexOf("locate");
امتحان کنید
نکته: جاوا اسکریپت، شمارش (در رشته ها و غیره ) را از 0 شروع می کند. صفر(0) مشخص کننده ی اولین موقعیت و 1 به دومین موقعیت و 2 به سومین موقعیت تعلق می گیرد...
بررسی متد رشته ای lastIndexOf() در جاوا اسکریپت
متد lastIndexOf() اندیس آخرین تطابق یک متن مشخص را در یک رشته، برمی گرداند:
مثال شماره 2
let text = "Please locate where 'locate' occurs!";
let index = text.lastIndexOf("locate");
امتحان کنیددر هر دوی متدهای indexOf() و lastIndexOf() اگر متن(text) مورد نظر موجود نباشد، مقدار 1- برگردانده می شود:
مثال شماره 3
let text = "Please locate where 'locate' occurs!";
let index = text.lastIndexOf("John");
امتحان کنیدهردوی این متدها، پارامتر دومی را نیز می پذیرند؛ که اندیس شروع را برای جستجو، مشخص می کند:
مثال شماره 4
let text = "Please locate where 'locate' occurs!";
let index = text.indexOf("locate", 15);
امتحان کنیدمتدهای lastIndexOf() برعکس عمل می کنند و از انتها به ابتدا، جستجو را انجام می دهد; یعنی اینکه، اگر پارامتر دوم 15 باشد، جستجو از انتهای رشته(سمت راست) از اندیس 15 الی اندیس 0 (در سمت چپ) شروع می شود . اما شمارش اندیس رشته ای که به دنبال آن هستیم، از سمت چپ رشته ی اصلی شروع می شود:
مثال شماره 5
let text = "Please locate where 'locate' occurs!";
text.lastIndexOf("locate", 15);
امتحان کنیدبررسی متد رشته ای search() در جاوا اسکریپت
متد search()، یک رشته را در یک رشته ی دیگر(یا در یک عبارت منظم دیگر) جستجو می کند؛ و موقعیت(اندیس) تطابق را برمی گرداند:
آیا می دانستید؟
سوال: آیا متدهای indexOf() و search() با یکدیگر یکسان(equal) هستند؟ آنها آرگومان های(پارامترهای) مشابهی را قبول می کنند و مقادیر مشابهی را برمی گردانند، پس با یکدیگر برابر هستند؟
جواب: این دو متد با یکدیگر برابر نیستند. تفاوت های آنها به صورت زیر است:
1. متد search() نمی تواند دومین آرگومان را دریافت کند؛ اما متد indexOf() می تواند چنین کاری را انجام دهد.
2. متد indexOf() نمی تواند از عبارات منظم استفاده کند.
بعداً در مورد عبارات منظم بیشتر توضیح خواهیم داد.
متد رشته ای match() در جاوا اسکریپت
متد match() یک آرایه را برمی گرداند که حاوی نتیجه ی تطابق یک رشته در یک رشته ی دیگر (یا یک عبارت منظم) است.
مثال شماره 8
یک جستجو برای رشته ی "ain":
let text = "The rain in SPAIN stays mainly in the plain";
text.match("ain");
امتحان کنیدمثال شماره 9
یک جستجو برای رشته ی "ain":let text = "The rain in SPAIN stays mainly in the plain";
text.match(/ain/);
امتحان کنیدمثال شماره 10
انجام یک جستجوی سراسری(global) برای عبارت "ain":
let text = "The rain in SPAIN stays mainly in the plain";
text.match(/ain/g);
امتحان کنیدمثال شماره 11
انجام یک جستجوی سراسری و غیر حساس به حروف بزرگ و کوچک برای عبارت "ain":
let text = "The rain in SPAIN stays mainly in the plain";
text.match(/ain/gi);
امتحان کنیدنکته: اگر یک عبارت منظم، شامل اصلاحگر g (مخفف global) نباشد، آنگاه متد match() تنها اولین تطابق در یک رشته را برمی گرداند.
متد رشته ای matchAll() در جاوا اسکریپت
متد matchAll() تمام تطابق های یک رشته در یک رشته ی دیگر(یا یک عبارت منظم) را برمی گرداند.
اگر پارامتر ما یک عبارت منظم(regular expression) باشد،علامت سراسری g باید استفاده شود؛ در غیر این صورت خطای TypeError صادر خواهد شد.
اگر می خواهید به صورت غیر حساس به حروف بزرگ و کوچک، جستجو کنید؛ باید علامت i را اضافه کنید:
نکته: متد matchAll() در اکما اسکریپت 2020 معرفی شده است.این متد، در مرورگر اینترنت اکسپلورر کار نمی کند.
متد رشته ای includes() در جاوا اسکریپت
اگر یک رشته، حاوی یک مقدار مشخص باشد، آنگاه متد includes() مقدار true را برمی گرداند. در غیر این صورت مقدار false را برمی گرداند.
مثال شماره 15
بررسی اینکه آیا یک رشته، حاوی کلمه ی "world" است یا نه.:
let text = "Hello world, welcome to the universe.";
text.includes("world");
امتحان کنیدمثال شماره 16
بررسی اینکه آیا یک رشته، حاوی کلمه ی "world" هست یا نه. شمارش از اندیس شماره 12، شروع می شود:
let text = "Hello world, welcome to the universe.";
text.includes("world", 12);
امتحان کنیدنکته:
1. متد includes() به حروف بزرگ و کوچک حساس است.
2. متد includes() به اکما اسکریپت 6 تعلق دارد.
3. متد includes() در مرورگر اینترنت اکسپلورر پشتیبانی نمی شود.
متد رشته ای startsWith() در جاوا اسکریپت
اگر یک رشته با یک مقدار مشخص شروع شود، آنگاه متد startsWith() مقدار true را برمی گرداند؛ در غیر این صورت، این متد، مقدار false را برمی گرداند.
مثال شماره 17
مقدار true را برمی گرداند:
let text = "Hello world, welcome to the universe.";
text.startsWith("Hello");
امتحان کنیدمثال شماره 18
مقدار false را برمی گرداند:
let text = "Hello world, welcome to the universe.";
text.startsWith("world")
امتحان کنیدما می توانیم برای جستجوی رشته، یک نقطه ی شروع را مشخص کنیم:
مثال شماره 19
مقدار false را برمی گرداند:
let text = "Hello world, welcome to the universe.";
text.startsWith("world", 5)
امتحان کنیدمثال شماره 20
مقدار true را برمی گرداند:
let text = "Hello world, welcome to the universe.";
text.startsWith("world", 6)
امتحان کنید
نکته:
1. متد startsWith() به حروف بزرگ و کوچک حساس است.
2. متد startsWith() به اکما اسکریپت 6 تعلق دارد.
3.متد startsWith() در مرورگر اینترنت اکسپلورر پشتیبانی نمی شود.
متد رشته ای endsWith() در جاوا اسکریپت
اگر یک رشته با یک مقدار مشخص پایان یافته باشد، متد endsWith() مقدار true را برمی گرداند؛ در غیر این صورت، مقدار false را برمی گرداند.
مثال شماره 21
بررسی اینکه در انتهای یک رشته مقدار Doe هست یا نه:
let text = "John Doe";
text.endsWith("Doe");
امتحان کنیدمثال شماره 22
بررسی اینکه آیا در انتهای یازدهمین کاراکتر اول یک رشته، مقدار world وجود دارد یا نه:
let text = "Hello world, welcome to the universe.";
text.endsWith("world", 11);
امتحان کنید
نکته:
1. متد endsWith() به حروف بزرگ و کوچک حساس است.
2. متد endsWith() به اکما اسکریپت 6 تعلق دارد.
3. متد endsWith() در اینترنت اکسپلورر پشتیبانی نمی شود.
- بازدید: 402
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.