Symbol.match
الرمز المعروف 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 هذه الميزة.
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).