Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnología web para desarrolladores
  2. JavaScript
  3. Referencia de JavaScript
  4. Objetos globales
  5. String — Cadena de caracteres
  6. String.prototype.match()

Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.

View in EnglishAlways switch to English

String.prototype.match()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨julio de 2015⁩.

El métodomatch() devuelve todas las ocurrencias de unaexpresión regular dentro de unacadena.

Pruébalo

const paragraph = "The quick brown fox jumps over the lazy dog. It barked.";const regex = /[A-Z]/g;const found = paragraph.match(regex);console.log(found);// Expected output: Array ["T", "I"]

Sintaxis

js
match(regexp)

Parámetros

regexp

Un objeto de expresión regular o cualquier objeto que tenga un métodoSymbol.match.

Siregexp no es un objetoRegExp y no tiene un métodoSymbol.match, se convierte implícitamente enRegExp usandonew RegExp(regexp).

Si no se proporciona ningún parámetro y se utiliza el métodomatch() directamente, se obtendrá unArray con una cadena vacía:[''], ya que esto es equivalente amatch(/(?:)/).

Valor devuelto

UnArray cuyo contenido depende de la presencia de la bandera global (g), onull si no se encuentran coincidencias.

  • Si se usa la banderag, se devolverán todos los resultados que coincidan con la expresión regular completa, pero no se incluirán los grupos de captura.

  • Si no se usa la banderag, se devolverán sólo la primera coincidencia completa y sus grupos de captura relacionados. En este caso,match() devolverá el mismo resultado queRegExp.prototype.exec() (unArray con algunas propiedades adicionales).

Descripción

La implementación deString.prototype.match en sí es muy simple. Se llama al métodoSymbol.match del argumento con la cadena como primer parámetro. La implementación real proviene deRegExp.prototype[@@match]().

Para obtener más información sobre la semántica dematch() cuando se pasa una expresión regular, consulteRegExp.prototype[@@match]().

Ejemplos

Uso de match()

En el siguiente ejemplo, se usamatch para hallar 'Capítulo' seguido de uno o más caracteres numéricos seguidos de un punto decimal y caracteres numéricos cero o más veces.

La expresión regular incluye la banderai por lo que las diferencias entre mayúsculas y minúsculas serán ignoradas.

js
const str = "Para más información, consulte el Capítulo 3.4.5.1";const re = /consulte el (capítulo \d+(\.\d)*)/i;const found = str.match(re);console.log(found);// [//   'consulte el Capítulo 3.4.5.1',//   'Capítulo 3.4.5.1',//   '.1',//   index: 22,//   input: 'Para más información, consulte el Capítulo 3.4.5.1',//   groups: undefined// ]

En el resultado anterior:

  • 'consulte el Capítulo 3.4.5.1' es la ocurrencia completa.
  • 'Capítulo 3.4.5.1' fue capturado por(capítulo \d+(\.\d)*).
  • '.1' fue el último valor capturado por(\.\d).
  • La propiedadindex (22) es el índice de la coincidencia completa.
  • La propiedadinput es la cadena original que se analizó.

Uso de las banderas global e ignoreCase

El siguiente ejemplo demuestra el uso de la bandera global e ignorar mayúsculas conmatch(). Se devuelven todas las letras de laA a laE y de laa a lae, cada una con su propio elemento en elarray.

js
var str = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz";var regexp = /[A-E]/gi;var matches = str.match(regexp);console.log(matches);// ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']

Uso de grupos de captura con nombre

En los navegadores que soporten grupos de captura con nombre, el siguiente código captura'zorro' o'gato' en un grupo llamadoanimal:

js
const paragraph = "El veloz zorro marrón salta sobre el perro perezoso. Ladró.";const capturingRegex = /(?<animal>zorro|gato) marrón/;const found = paragraph.match(capturingRegex);console.log(found.groups); // { animal: 'zorro' }

Uso de match() sin parámetros

js
const str = "Nada saldrá de la nada.";str.match(); // ['']

Uso de match() sin RegExp implementando @@match

Si un objeto tiene un métodoSymbol.match, entonces se puede usar como un comparador personalizado. El valor de retorno deSymbol.match se convierte en el valor de retorno dematch().

js
const str = "Mmmm, esto es interesante.";str.match({  [Symbol.match](str) {    return ["Sí lo es!"];  },}); // Devuelve ['Sí lo es!']

VéaseRegExp.prototype[@@match]().

Uso de parámetros distintos de RegEx

Cuando el parámetroregexp es una cadena o un número, se convierte implícitamente enRegExp mediante el uso denew RegExp(regexp).

js
const str1 =  "NaN significa que no es un número. Infinity contiene -Infinity e +Infinity en JavaScript.";const str2 = "Mi abuelo tiene 65 años y mi abuela tiene 63 años.";const str3 = "El contrato fue declarado null (nulo) y sin efecto.";str1.match("número"); // 'número' es una cadena - devuelve ['número']str1.match(NaN); // NaN es de tipo número - devuelve ['NaN']str1.match(Infinity); // Infinity es de tipo número - devuelve ['Infinity']str1.match(+Infinity); // devuelve ['Infinity']str1.match(-Infinity); // devuelve ['-Infinity']str2.match(65); // devuelve ['65']str2.match(+65); // un número con signo positivo - devuelve ['65']str3.match(null); // devuelve ['null']

Esto puede tener resultados inesperados si los caracteres especiales no se escapan correctamente.

js
console.log("123".match("1.3")); // ['123']

Esta es una ocurrencia porque. en una expresión regular coincide con todos los caracteres. Para que solo coincida con el carácter de punto, se debe escapar de la entrada.

js
console.log("123".match("1\\.3")); // null

Especificaciones

Specification
ECMAScript® 2026 Language Specification
# sec-string.prototype.match

Compatibilidad con navegadores

Véase también

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp