RegExp.lastIndex

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

الخاصية RegExp.lastIndex هي خاصيةٌ عدديةٌ تابعةٌ للكائنات من النوع RegExp وتقبل القراءة والكتابة وتُحدِّد الفهرس الذي ستبدأ منه عملية البحث عن مطابقة.

سمات الخاصية RegExp.lastIndex
قابلة للكتابة نعم
قابلة للإحصاء لا
قابلة للضبط لا

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

regExpObj.lastIndex

الوصف

ستُضبَط هذه الخاصية إذا احتوى التعبير النمطي على الراية "g" للإشارة إلى أنَّ البحث سيكون عامًّا في كامل السلسلة النصية، وستُطبَّق القواعد الآتية:

  • إذا كانت قيمة lastIndex أكبر من طول السلسلة النصية، فلن تعمل الدالتان test()‎ و exec()‎ وبالتالي ستُضبَط قيمة lastIndex إلى 0.
  • إذا كانت قيمة lastIndex تساوي طول السلسلة النصية، وإذا كان التعبير النمطي يُطابِق سلسلةً نصيةً فارغةً، فسيُطابِق التعبير النمطية السلسلة النصية بدءًا من lastIndex.
  • إذا كانت قيمة lastIndex تساوي طول السلسلة النصية وإذا لم يطابق التعبير النمطي السلسلةَ النصية الفارغة، فلن يُطابِق التعبير النمطي المدخلات، وسيُعاد ضبط lastIndex إلى 0.
  • فيما عدا ذلك، ستُضبَط قيمة الخاصية lastIndex إلى الموضع التالي الذي فيه آخر مُطابَقة للتعبير النمطي.

أمثلة

لتكن لدينا السلسلة المتعاقبة من التعابير البرمجية:

var re = /(hi)?/g;

سيُطابِق هذا النمط:

console.log(re.exec('hi'));
console.log(re.lastIndex);

وسيُعيد ["hi", "hi"] وستكون قيمة lastIndex مساويةً إلى 2.

console.log(re.exec('hi'));
console.log(re.lastIndex);

سيُعيد ‎["", undefined]‎، ويكون أوّل عنصر في هذه المصفوفة هو السلسلة النصية المُطابَقة، وهي سلسلة نصية فارغة في هذه الحالة، ذلك لأنَّ قيمة lastIndex كانت 2، وطول السلسلة النصية "hi" هو 2.

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

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

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