RegExp.prototype.test()‎

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

الدالة RegExp.prototype.test()‎ تجرى بحثًا عن مطابقة للتعبير النمطي في السلسلة النصية المُحدَّدة، وتُعيد true أو false.

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

regexObj.test(str)

str

السلسلة النصية التي سنبحث عن مُطابَقة للتعبير النمطي فيها.

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

إذا نجحت عملية المطابقة، فستُعيد الدالة test()‎ القيمة true، وإن لم يكن التعبير النمطي موجودًا في السلسلة النصية فستُعيد القيمة false.

الوصف

الدالة test()‎ تُحدِّد إن كان النمط موجودًا في السلسلة النصية أم لا، وستُعيد قيمة منطقيةً (Boolean)، وذلك على النقيض من الدالة String.prototype.search()‎ التي تُعيد فهرس المُطابَقة (أو القيمة ‎-1 إن لم يكن التعبير النمطي موجودًا). للحصول على معلومات إضافية (لكن سيكون التنفيذ أبطأ) فاستخدم الدالة exec()‎ (الشبيهة بالدالة String.prototype.match()‎).

وكما في الدالة exec()‎، يمكن استدعاء الدالة test()‎ عدِّة مرات على كائن التعابير النمطية الذي ضُبِطَت فيه الراية "g" للحصول على المُطابَقة التالية للتعبير النمطي في السلسلة النصية.

أمثلة

استخدام الدالة test()‎

هذا مثالٌ بسيطٌ يختبر وجود "hello" في بداية السلسلة النصية، وستُعيد الدالة قيمةً منطقيةً:

var str = 'hello world!';
var result = /^hello/.test(str);
console.log(result); // true

أما الدالة الآتية فتعرض رسالةً توضِّح إن كان النمط موجودًا في السلسلة النصية أم لا:

function testinput(re, str) {
  var midstring;
  if (re.test(str)) {
    midstring = ' contains ';
  } else {
    midstring = ' does not contain ';
  }
  console.log(str + midstring + re.source);
}

استخدام الدالة test()‎ مع تعبيرٍ نمطيٍ له الراية g

إذا امتلك التعبير النمطي الراية "g" (أي global، التي تبحث عن جميع المطابقات في السلسلة النصية)، فستستكمل الدالة test()‎ بحثها بدءًا من قيمة الخاصية lastIndex التابعة لكائن RegExp. المثال الآتي يوضِّح هذا السلوك:

var regex = /foo/g;

// regex.lastIndex: 0
regex.test('foo'); // true

// regex.lastIndex: 3
regex.test('foo'); // false

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

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

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