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 |
---|---|---|---|---|---|
الدعم الأساسي | نعم | نعم | نعم | نعم | نعم |
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).
- معيار ECMAScript 5.1.
- معيار ECMAScript 1st Edition .