متد هاي رشته اي جستجو در جاوااسكريپت مطابق زيراست:
متدindexOf() اولين موقعيت عبارت جستجو را در رشته برگشت ميدهد.
مثال ـ جستجو با متدindexOf()
let text = "Please locate where 'locate' occurs!"; let index = text.indexOf("locate");
درمثال بالا متد اولين موقعيت"locate"را در رشته text پيدا نموده وبرگشت ميدهد .
توجه ـ جاوااسكريپت موقعيت كراكتر رشته را از صفر مي شمارد .يعني صفر اولين موقعيت در رشته بحساب مي آيد .بهمين ترتيب دومين آن يك وسومين آن دو ميباشد.
<>متدlastIndexOf() آخرين موقعيت تطبيق عبارت جستجو را در رشته برگشت ميدهد
مثال ـlastIndexOf() پيدا نمودن موقعيت تطبيق آخر
let text = "Please locate where 'locate' occurs!"; let index = text.lastIndexOf("locate");
هر دو متد جستجويindexOf() , lastIndexOf() در صورتيكه مورد جستجو را پيدا نكنند،عدد-1 برگشت ميدهند .
مثال ـ نمونه عدم وجود مورد جستجو، برگشت عدد-1
let text = "Please locate where 'locate' occurs!"; let index = text.lastIndexOf("John");
هردو متد فوق داراي پارامتر شروع موقعيت براي جستجو هستند .پارامتر دوم آنها براي اعلام شروع جستجواست .در صورتيكه اعلام نشود، صفر در نظر گرفته ميشود.
مثال ـ اعلام پارامتر شروع جستجو
let text = "Please locate where 'locate' occurs!"; let index = text.indexOf("locate", 15);
روش جستجوي متدlastIndexOf() ازانتها به ابتداست يا بعقب است، بدين معني اگر پارامتر شروع15 اعلام شود، جستجو ازموقعيت فوق تا صفر ميابشد.
مثال ـ نمونه براي متدlastIndexOf() با پارامتر شروع
let text = "Please locate where 'locate' occurs!"; text.lastIndexOf("locate", 15);
متدserch() عبارتي را در رشته اي جستجومي نمايد وموقعيت آنرا برگشت ميدهد . عبارت جستجو مي تواند، يك عبارت منظم هم باشد.
مثال ـ نمونه جستجو با متدserch()
let text = "Please locate where 'locate' occurs!"; text.search("locate");
مثال ـ متدserch() با جستجوي عبارت منظم
let text = "Please locate where 'locate' occurs!"; text.search(/locate/);
آيا به تشابه وتفاوت هاي اين دو متدindexOf() , serch() توجه نموديد .
آنها داراي پارامترهاي مشابه و مقدار برگشتي يكسان هستند .اما بدلايل زيربا هم متفاوتند.
در فصل هاي بعدي در مورد عبارت منظم در جستجو مطالب بيشتري ارائه ميگردد.
متد رشته ايmatch() در جستجوي عبارتي در رشته، ازنتايج جستجوآرايه اي را برگشت ميدهد .بجاي عبارت ساده جستجو، ميتواند عبارت منظم باشد.
مثال ـ اقدام جستجو براي"ain"
let text = "The rain in SPAIN stays mainly in the plain"; text.match("ain");
مثال ـ اقدام جستجو براي"ain"با عبارت منظم
let text = "The rain in SPAIN stays mainly in the plain"; text.match(/ain/);
مثال ـ جستجوي تمام موارد تطبيق"ain"با عبارت منظم
let text = "The rain in SPAIN stays mainly in the plain"; text.match(/ain/g);
مثال ـ جستجوي جهاني"ain"وبدون حساسيت حروف
let text = "The rain in SPAIN stays mainly in the plain"; text.match(/ain/gi);
توجه ـ اگر عبارت منظم براي جستجو با متد فوق داراي فلگg نباشد، نتجه فقط اولين مورد تطبيق برگشت ميشود.
متدmatchALL() تما موارد تطبيق عبارت جستجو را در يك آرايه برگشت ميدهد . عبارت جستجو ميتواند عبارت منظم باشد.
مثال ـ جستجوي همه موارد"Cats"
const iterator = text.matchAll("Cats");
اگر پارامتر جستجو عبارت منظم باشد، بايد بافلگg تنظيم شود، در غير اين حالت خطا ايجاد ميشود
مثال ـ جستجو باعبارت منظم
const iterator = text.matchAll(/Cats/g);
اگر بخواهيد جستجو بدون حساسيت حروف داشته باشيد، ازفلگi در عبارت منظم استفاده كنيد.
مثال ـ جستجوي همه موارد"Cats"بدون حساسيت حروف
onst iterator = text.matchAll(/Cats/gi);
نكات ـmatchALL() از امكاناتES2020 و در اينترنت اكسپلورر كار نميكند.
متد رشته ايinclude( ) نتجه درست(true) را در صورتيكه مقدار مشخص در رشته وجود داشته باشد، برگشت ميدهد .درغيراينصورتfalse
مثال ـ كنترل وجود"world"در رشته
let text = "Hello world, welcome to the universe."; text.includes("world");
مثال ـ كنترل وجود"world"از موقعيت12
let text = "Hello world, welcome to the universe."; text.includes("world", 12);
نكات ـ متدinclude( ) ازامكاناتES6 است .اين متد با حساسيت حروف كار ميكند. در اينترنت اكسپلورر كار نميكند.
متدstartWith( ) در صورتيكه عبارت جستجو در ابتداي رشته باشد، نتيجه true برگشت ميدهد، درغيرايصورتfalse
مثال ـ نتيجهtrue
let text = "Hello world, welcome to the universe."; text.startsWith("Hello");
مثال ـ نتيجهfalse
let text = "Hello world, welcome to the universe."; text.startsWith("world")
مثال ـ موقعيت شروع براي كنترل، نتيجهfalse
let text = "Hello world, welcome to the universe."; text.startsWith("world", 5)
مثال ـ كنترل با موقعيت شروع ، نتيجهtrue
let text = "Hello world, welcome to the universe."; text.startsWith("world", 6)
نكات ـ متدstartWith( ) ازامكاناتES6 است .اين متد با حساسيت حروف كار ميكنند .در اينترنت اكسپلورر كار نميكند.
متدendstWith( ) در صورتيكه عبارت جستجو در انتهاي رشته باشد، نتيجهtrue برگشت ميدهد، درغيرايصورتfalse
مثال ـ كنترل وجود"Doe"در انتهاي رشته
let text = "John Doe"; text.endsWith("Doe");
مثال ـ كنترل وجود"world"در انتهاي11 كراكتر اول رشته
let text = "Hello world, welcome to the universe."; text.endsWith("world", 11);
نكات ـ متدendsWith( ) ازامكاناتES6 است .اين متد با حساسيت حروف كار ميكند. در اينترنت اكسپلورر كار نميكند.