ECMAScript | RegExp.prototype [ @@search ] ( string )

Когда метод поиска @@search вызывается с аргументом string, выполняются следующие шаги:

1. Пусть rx будет значением this.
2. Если Type(rx) не является Object, выбросить исключение TypeError.
3. Пусть S будет ? ToString(string).
4. Пусть previousLastIndex будет ? Получить Get(rx, "lastIndex").
5. Если SameValue(previousLastIndex, +0𝔽) является false (ложно), то
   а. Выполнять ? Установить Set(rx, "lastIndex", +0𝔽, true).
6. Пусть result будет ? RegExpExec(rx, S).
7. Пусть currentLastIndex будет ? Получить Get(rx, "lastIndex").
8. Если SameValue(currentLastIndex, previousLastIndex) является false (ложно), то
   а. Выполнить ? Установить Set(rx, "lastIndex", previousLastIndex, true).
9. Если результат result является null, вернуть -1𝔽.
10. Вернуть ? Получить Get(result, "index").

Значение свойства «name» этой функции — «[Symbol.search]«.

Примечание

Свойства «lastIndex» и «global» этого объекта RegExp игнорируются при выполнении поиска. Свойство «lastIndex» оставлено без изменений.

 

Информационные ссылки

Предыдущий раздел — ECMAScript | RegExp.prototype [ @@replace ] ( string, replaceValue )

Стандарт ECMAScript — Раздел «RegExp.prototype [ @@search ] ( string )» — https://tc39.es/ecma262/#sec-regexp.prototype-@@search

ECMAScript | Условные обозначения

ECMAScript | Свойства объекта-прототипа Регулярных Выражений

Поделись записью