Symbol.match

من موسوعة حسوب
مراجعة 15:40، 28 يناير 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

الرمز المعروف Symbol.match يُحدِّد إذا كان تعبيرٌ نمطيٌ (regular expression) يُطابِق سلسلةً نصيةً؛ وهذه الدالة تُستخدَم من الدالة String.prototype.match()‎.

سمات الخاصية Symbol.match
قابلة للكتابة لا
قابلة للإحصاء لا
قابلة للضبط لا

الوصف

تُستخدَم هذه الدالة أيضًا لمعرفة إن كان بالإمكان أن تسلك الكائنات سلوك التعابير النمطية؛ فمثلًا الدوال String.prototype.startsWith()‎ و String.prototype.endsWith()‎ و String.prototype.includes()‎ تتحقق إن كان أوّل وسيط هو تعبيرٌ نمطي وسترمي الاستثناء TypeError إذا لم يكن كذلك.

إذا ضبطنا الرمز match إلى false فذلك سيُشير إلى أنَّه من غير المفترض استخدام الكائن ككائن تعابير نمطية.

أمثلة

تعطيل التحقق من التعبير النمطي isRegExp

تنفيذ الشيفرة الآتية سيؤدي إلى رمي TypeError، ذلك لأنَّ السلسلة النصية '/bar/' ستُعدّ على أنها كائن تعابير نمطية:

'/bar/'.startsWith(/bar/);

لكن إذا غيّرنا قيمة Symbol.match إلى false، فإنَّ الاختبار isRegExp (الذي يستخدم الخاصية match) سيُشير إلى أنَّ الكائن ليس كائن تعابير نمطية؛ وبالتلي لن ترمي الدالتان startsWith و endsWith الخطأ TypeError كما في المثال السابق:

var re = /foo/;
re[Symbol.match] = false;
'/foo/'.startsWith(re); // true
'/baz/'.endsWith(re);   // false

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

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي 50 40 غير مدعومة نعم نعم

على النقيض من متصفح IE، يدعم متصفح Edge هذه الميزة.

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