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