الفرق بين المراجعتين لصفحة: «JavaScript/RegExp/@@search»
< JavaScript | RegExp
لا ملخص تعديل |
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}' |
||
سطر 72: | سطر 72: | ||
* مسودة المعيار [https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search ECMAScript Latest Draft]. | * مسودة المعيار [https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search ECMAScript Latest Draft]. | ||
* معيار [http://www.ecma-international.org/ecma-262/6.0/#sec-regexp.prototype-@@search ECMAScript 2015 (6th Edition)]. | * معيار [http://www.ecma-international.org/ecma-262/6.0/#sec-regexp.prototype-@@search ECMAScript 2015 (6th Edition)]. | ||
[[تصنيف:JavaScript]] | [[تصنيف:JavaScript|{{SUBPAGENAME}}]] | ||
[[تصنيف:JavaScript Global Objects]] | [[تصنيف:JavaScript Global Objects|{{SUBPAGENAME}}]] | ||
[[تصنيف:JavaScript RegExp]] | [[تصنيف:JavaScript RegExp|{{SUBPAGENAME}}]] |
المراجعة الحالية بتاريخ 15:39، 28 يناير 2018
الدالة RegExp.prototype.[@@search]()
تبحث عن تعبيرٍ نمطيٍ (regular expression) في سلسلةٍ نصية.
البنية العامة
regexp[Symbol.search](str)
str
السلسلة النصية التي سنبحث عن مُطابَقة للتعبير النمطي فيها.
القيمة المعادة
فهرس أوّل مطابقة للتعبير النمطي في السلسلة النصية، أو القيمة -1 إن لم تكن هنالك مطابقة.
الوصف
تُستدعى هذه الدالة داخليًا في الدالة String.prototype.search()
. فمثلًا، كلا المثالين الآتيين يُعيد النتيجة نفسها:
'abc'.search(/a/);
/a/[Symbol.search]('abc');
الغرض من وجود هذه الدالة هو السماح بإمكانية تخصيصها في الأصناف الفرعية المشتقة من RegExp
.
أمثلة
استدعاء مباشر
ستُستخدَم هذه الدالة بنفس طريقة استخدام الدالة String.prototype.search()
:
var re = /-/g;
var str = '2016-01-02';
var result = re[Symbol.search](str);
console.log(result); // 4
استخدام @@search
في الأصناف الفرعية
يمكن للأصناف الفرعية المشتقة من الصنف RegExp
إعادة تعريف الدالة [@@search]()
لتغيير سلوكها الافتراضي:
class MyRegExp extends RegExp {
constructor(str) {
super(str)
this.pattern = str;
}
[Symbol.search](str) {
return str.indexOf(this.pattern);
}
}
var re = new MyRegExp('a+b');
var str = 'ab a+b';
var result = str.search(re); // String.prototype.search calls re[@@search].
console.log(result); // 3
دعم المتصفحات
الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
الدعم الأساسي | نعم | 49 | غير مدعومة | نعم | نعم |
على النقيض من متصفح IE، يدعم Edge هذه الميزة.
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).