los match() método recupera el resultado de hacer coincidir un string contra un expresión regular.

Sintaxis

match(regexp)

Parámetros

regexp

Un objeto de expresión regular.

Si regexp es un noRegExp objeto, implícitamente se convierte en un RegExp mediante el uso new RegExp(regexp).

Si no da ningún parámetro y usa el match() método directamente, obtendrá un Array con un vacio string: [""].

Valor devuelto

Un Array cuyos contenidos dependen de la presencia o ausencia de lo global (g) bandera, o null si no se encuentran coincidencias.

  • Si el g Si se usa la bandera, se devolverán todos los resultados que coincidan con la expresión regular completa, pero no los grupos de captura.
  • Si el g no se utiliza la bandera, solo se devuelve la primera coincidencia completa y sus grupos de captura relacionados. En este caso, el artículo devuelto tendrá propiedades adicionales como se describe a continuación.

Propiedades adicionales

Como se explicó anteriormente, algunos resultados contienen propiedades adicionales como se describe a continuación.

groups
Un objeto de grupos de captura con nombre cuyo keys son los nombres y valores son los grupos de captura o undefined si no se definieron grupos de captura con nombre. Ver Grupos y gamas para más información.
index
El índice de la búsqueda en el que se encontró el resultado.
input
Una copia de la búsqueda string.

Descripción

Si la expresión regular no incluye el g bandera, str.match() devolverá el mismo resultado que RegExp.exec().

Otros metodos

  • Si necesita saber si un string coincide con una expresión regular RegExp, usar RegExp.test().
  • Si solo desea que se encuentre la primera coincidencia, es posible que desee utilizar RegExp.exec() en lugar de.
  • Si desea obtener grupos de captura y la bandera global está configurada, debe usar RegExp.exec() o String.prototype.matchAll() en lugar de.

Ejemplos de

Usando match ()

En el siguiente ejemplo, match() se usa para encontrar ‘Chapter‘seguido de 1 o más caracteres numéricos seguidos de un punto decimal y un carácter numérico 0 o más veces.

La expresión regular incluye el i para que se ignoren las diferencias entre mayúsculas y minúsculas.

const str ='For more information, see Chapter 3.4.5.1';const re =/see (chapter d+(.d)*)/i;const found = str.match(re);

console.log(found);// logs [ 'see Chapter 3.4.5.1',//        'Chapter 3.4.5.1',//        '.1',//        index: 22,//        input: 'For more information, see Chapter 3.4.5.1' ]// 'see Chapter 3.4.5.1' is the whole match.// 'Chapter 3.4.5.1' was captured by '(chapter d+(.d)*)'.// '.1' was the last value captured by '(.d)'.// The 'index' property (22) is the zero-based index of the whole match.// The 'input' property is the original string that was parsed.

Usar indicadores globales e ignorar mayúsculas y minúsculas con match ()

El siguiente ejemplo demuestra el uso de los indicadores de mayúsculas y minúsculas globales e ignorar con match(). Todas las letras A mediante E y a mediante e se devuelven, cada uno con su propio elemento en el array.

const str ='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';const regexp =/[A-E]/gi;const matches_array = str.match(regexp);

console.log(matches_array);// ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']

Nota: Ver también String.prototype.matchAll() y Búsqueda avanzada con banderas.

Usar grupos de captura con nombre

En los navegadores que admiten grupos de captura con nombre, el siguiente código captura “fox” o “cat“en un grupo llamado”animal“:

const paragraph ='The quick brown fox jumps over the lazy dog. It barked.';const capturingRegex =/(?fox|cat) jumps over/;const found = paragraph.match(capturingRegex);
console.log(found.groups);// animal: "fox"

Usando match () sin parámetro

const str ="Nothing will come of nothing.";

str.match();// returns [""]

Un objeto que no es RegExp como parámetro

Cuando el regexp el parámetro es un string o un número, se convierte implícitamente en un RegExp mediante el uso new RegExp(regexp).

Si es un número positivo con signo positivo, RegExp() ignorará el signo positivo.

const str1 ="NaN means not a number. Infinity contains -Infinity and +Infinity in JavaScript.",
    str2 ="My grandfather is 65 years old and My grandmother is 63 years old.",
    str3 ="The contract was declared null and void.";
str1.match("number");// "number" is a string. returns ["number"]
str1.match(NaN);// the type of NaN is the number. returns ["NaN"]
str1.match(Infinity);// the type of Infinity is the number. returns ["Infinity"]
str1.match(+Infinity);// returns ["Infinity"]
str1.match(-Infinity);// returns ["-Infinity"]
str2.match(65);// returns ["65"]
str2.match(+65);// A number with a positive sign. returns ["65"]
str3.match(null);// returns ["null"]

Especificaciones

Especificación
ECMAScript (ECMA-262)
La definición de ‘String.prototype.match’ en esa especificación.

Compatibilidad del navegador

Escritorio Móvil
Cromo Borde Firefox explorador de Internet Ópera Safari WebView Android Chrome Android Firefox para Android Opera Android Safari en IOS Internet de Samsung
match 1 12 1 4 4 1 1 18 4 10.1 1 1.0

Ver también

  • String.prototype.matchAll()
  • RegExp
  • RegExp.prototype.exec()
  • RegExp.prototype.test()