--- title: RegExp.prototype.test() slug: Web/JavaScript/Reference/Global_Objects/RegExp/test tags: - Expresion Regular - Prototipo - metodo translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/test original_slug: Web/JavaScript/Referencia/Objetos_globales/RegExp/test ---
El método test()
ejecuta la búsqueda de una ocurrencia entre una expresión regular y una cadena especificada. Devuelve true
o false
.
regexObj.test(cadena)
cadena
Retorna true
si existe una coincidencia entre la expresión regular y la cadena especificada; de lo contrario retorna false
.
Use test()
cuando desee saber si existe la ocurrencia de un patrón en una cadena (similar al método {{jsxref("String.prototype.search()")}}, la diferencia es que test()
devuelve un booleano, mientras que search()
devuelve el índice de la coincidencia (si la encuentra) o -1 si no la encuentra).
Si requiere más información (a coste de una ejecución más lenta) utilice el método {{jsxref("RegExp.prototype.exec()", "exec()")}}. Al igual que este último, multiples llamadas a test()
sobre la misma instancia global de una expresión regular avanzará desde de la ocurrencia anterior.
test()
Ejemplo simple que prueba si "hello" está contenido al principio de una cadena y devuelve un valor booleano.
var cadena = "hello world!"; var result = /^hello/.test(cadena); console.log(result); // true
El siguiente ejemplo registra un mensaje que depende del éxito de la prueba:
function probarEntrada(regexp, cadena){ var subcadena; if (regexp.test(cadena)) { subcadena = ' contiene '; } else { subcadena = ' no contiene '; } console.log(cadena + subcadena + regexp.source); }
Especificación | Estado | Comentario |
---|---|---|
{{SpecName('ES3')}} | {{Spec2('ES3')}} | Definition inicial. Implementado en JavaScript 1.2. |
{{SpecName('ES5.1', '#sec-15.10.6.3', 'RegExp.test')}} | {{Spec2('ES5.1')}} | |
{{SpecName('ES6', '#sec-regexp.prototype.test', 'RegExp.test')}} | {{Spec2('ES6')}} | |
{{SpecName('ESDraft', '#sec-regexp.prototype.test', 'RegExp.test')}} | {{Spec2('ESDraft')}} |
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Antes de Gecko 8.0 {{geckoRelease("8.0")}}, test()
estaba incorrectamente implementado; cuando era llamado sin parámetros, buscaba emparejar contra el valor de la entrada anterior (la propiedad RegExp.input
) en lugar de hacerlo contra la cadena "undefined"
. Esto ha sido corregido; ahora /undefined/.test()
resulta correctamente en true
, en lugar de un error.