Сводка
Метод search()
выполняет поиск сопоставления между регулярным выражением и этим объектом String
.
Синтаксис
str.search([regexp])
Параметры
-
regexp
-
Необязательный параметр. Объект регулярного выражения. Если будет передан не объект регулярного выражения, он будет неявно преобразован в объект
RegExp
через вызов конструктораnew RegExp(regexp)
.
Описание
При успехе метод search()
возвращает индекс первого сопоставления с регулярным выражением внутри строки. В противном случае метод вернёт -1.
Если вы хотите узнать, находится ли шаблон в строке, используйте метод search()
(он работает так же, как и метод test()
регулярного выражения); для получения дополнительной информации (за счёт более медленного выполнения) используйте метод match()
(работает так же, как метод exec()
регулярного выражения).
Примеры
Пример: использование метода search()
В следующем примере в журнал попадает сообщение, зависящее от успешности или неуспешности прохождения проверки.
function testinput(re, str) { var midstring; if (str.search(re) != -1) { midstring = ' содержит '; } else { midstring = ' не содержит '; } console.log(str + midstring + re); }
Спецификации
Спецификация | Статус | Комментарии |
---|---|---|
ECMAScript 3-е издание. | Стандарт | Изначальное определение. Реализована в JavaScript 1.2. |
ECMAScript 5.1 (ECMA-262) Определение 'String.prototype.search' в этой спецификации. |
Стандарт | |
ECMAScript 2015 (6th Edition, ECMA-262) Определение 'String.prototype.search' в этой спецификации. |
Стандарт |
Совместимость с браузерами
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) |
Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) | (Да) |
Примечания по Gecko
- До версии Gecko 8.0, метод
search()
был реализован неправильно; при вызове без параметров или с параметромundefined
, он сопоставлялся строке 'undefined', вместо пустой строки. Это было исправлено; теперь и вызов'a'.search()
, и вызов'a'.search(undefined)
корректно возвращают 0.