Метод test() виконує пошук на співпадання між регулярним вирозом і заданим рядком. Повертає true або false.
Синтакс
regexObj.test(str)
Параметри
str- Рядок, що перевіряється регулярним вирозом.
Повертає
true якщо є співпадіння між регулярним вирозом та вказаним рядком; інакше, false.
Опис
Використовуйте test() щоразу коли ви хочете знати чи патерн знайдено у рядку (схоже до методу String.prototype.search(), різниця в тому, що test() повертає булеве значення, коли search() - індекс (якщо знайдено), інакше -1 (якщо не знайдено); якщо потрібно більше інформації (але виконання буде повільніше) використовуйте метод exec() (схожий до методу String.prototype.match() ). Як і exec() (або в комбінації з ним), test(), що викликаний декілька разів на одному і тому ж глобальному екземплярі регулярного виразу, буде швидшим ніж попередні виконування.
Приклади
Використання test()
Простий приклад, що перевіряє чи "hello" знаходиться на самому початку рядка , повертає булеве значення.
var str = 'hello world!'; var result = /^hello/.test(str); console.log(result); // true
Наступний приклад виводить у лог сповіщення результату проходження тесту:
function testinput(re, str) {
var midstring;
if (re.test(str)) {
midstring = ' contains ';
} else {
midstring = ' does not contain ';
}
console.log(str + midstring + re.source);
}
Специфікації
| Specification | Status | Comment |
|---|---|---|
| ECMAScript 3rd Edition (ECMA-262) | Standard | Початкове визначення. Реалізоване у JavaScript 1.2. |
| ECMAScript 5.1 (ECMA-262) The definition of 'RegExp.test' in that specification. |
Standard | |
| ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'RegExp.test' in that specification. |
Standard | |
| ECMAScript 2017 Draft (ECMA-262) The definition of 'RegExp.test' in that specification. |
Draft |
Сумісність у браузерах
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
| Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Замітки щодо Gecko
До версії Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5), test() було реалізовано невірно; коли він визивався без параметрів, то звірявся зі значенням попереднього вводу (властивістю RegExp.input), а не з рядком "undefined". Це виправлено; зараз /undefined/.test() вірно повертає значення true, а не error, як це було раніше.