String.prototype.lastIndexOf()‎

من موسوعة حسوب

الدالة String.prototype.lastIndexOf()‎ تُعيد الفهرس الموجود ضمن كائن String الذي يستدعي الدالة والذي يكون موضع آخر مُطابَقة للقيمة المُحدَّدة لهذه الدالة بدءًا من fromIndex وبالرجوع إلى بداية السلسلة النصية، أو القيمة ‎-1 إن لم يُعثَر عليها.

البنية العامة

str.lastIndexOf(searchValue[, fromIndex])

searchValue

السلاسل النصية التي نريد البحث عنها ومعرفة فهرسها.

fromIndex

قيمة اختيارية، وهي عددٌ صحيحٌ يُمثِّل الفهرس الذي سيبدأ البحث منه باتجاه بداية السلسلة النصية. القيمة الافتراضية هي ‎+Infinity، وإذا كانت قيمة fromIndex >= str.length فسيتم البحث في كامل السلسلة النصية، وإذا كان fromIndex < 0 فسيكون سلوك الدالة كما لو كانت قيمة هذا الوسيط هي 0.

القيمة المعادة

فهرس موضع آخر مطابَقة للسلسلة النصية searchValue، أو القيمة ‎-1 إن لم يُعثَر عليها.

الوصف

تُرقَّم المحارف من بداية السلسلة النصية (أي من اليسار إلى اليمين في لغات LTR مثل الإنكليزية، ومن اليمين إلى اليسار في لغات RTL مثل العربية)، ويكون فهرس أوّل محرف هو 0، ومحرف آخر عنصر هو str.length -1.

'canal'.lastIndexOf('a');     //  3
'canal'.lastIndexOf('a', 2);  //  1
'canal'.lastIndexOf('a', 0);  // -1
'canal'.lastIndexOf('x');     // -1
'canal'.lastIndexOf('c', -5); //  0
'canal'.lastIndexOf('c', 0);  //  0
'canal'.lastIndexOf('');      //  5
'canal'.lastIndexOf('', 2);   //  2

لاحظ أنَّ الدالة lastIndexOf()‎ حساسةٌ لحالة الأحرف، أي أنَّ التعبير الآتي سيُعيد القيمة ‎-1:

'Blue Whale, Killer Whale'.lastIndexOf('blue'); // -1

التحقق من وجود سلسلة نصية

لاحظ أنَّ القيمة 0 لا تتحوّل إلى true والقيمة -1 لن تتحول إلى false؛ وبالتالي إذا أردنا التحقق من وجود سلسلة نصية داخل سلسلة نصية أخرى، فعلينا كتابة الشيفرة الآتية:

'Blue Whale'.indexOf('Blue') !== -1; // true
'Blue Whale'.indexOf('Bloe') !== -1; // false

انظر إلى الدالة String.prototype.includes()‎، فهي تعمل نفس عمل الشيفرة السابقة، لكنها أُضيفَت إلى معيار ECMAScript 2015.

أمثلة

استخدام indexOf()‎ و lastIndexOf()‎

المثال الآتي يوظِّف الدالتين indexOf()‎ و lastIndexOf()‎ لتحديد مواضع القيم في السلسلة النصية "Brave new world":

var anyString = 'Brave new world';

console.log('The index of the first w from the beginning is ' + anyString.indexOf('w'));
// 8
console.log('The index of the last w from the beginning is ' + anyString.lastIndexOf('w'));
// 10

console.log('The index of "new" from the beginning is ' + anyString.indexOf('new'));
// 6
console.log('The index of "new" from the end is ' + anyString.lastIndexOf('new'));
// 6

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي نعم نعم نعم نعم نعم

مصادر ومواصفات