El método JavaScript String match () devuelve el resultado de hacer coincidir una cadena con una expresión regular.
La sintaxis del match()
método es:
str.match(regexp)
Aquí, str es una cadena.
Parámetros de match ()
El match()
método incluye:
- regexp: un objeto de expresión regular (el argumento se convierte implícitamente en
RegExp
si no es unRegExp
objeto)
Nota: Si no proporciona ningún parámetro, match()
devuelve ("")
.
Valor de retorno de match ()
- Devuelve un elemento que
Array
contiene las coincidencias, un elemento para cada coincidencia. - Devuelve
null
si no se encuentra ninguna coincidencia.
Ejemplo 1: uso de match ()
const string = "I am learning JavaScript not Java."; const re = /Java/; let result = string.match(re); console.log("Result of matching /Java/ :"); console.log(result); const re1 = /Java/g; let result1 = string.match(re1); console.log("Result of matching /Java/ with g flag:") console.log(result1);
Salida
Resultado de la coincidencia / Java /: ('Java', índice: 14, entrada: 'Estoy aprendiendo JavaScript, no Java.', Grupos: indefinido) Resultado de la coincidencia / Java / con el indicador g: ('Java', 'Java' )
Aquí, podemos ver que sin usar la g
bandera, obtenemos solo la primera coincidencia como resultado, pero con información detallada como índice, entrada y grupos.
Nota : Si la expresión regular no incluye la g
bandera, str.match()
solo devolverá la primera coincidencia similar a RegExp.exec()
. El artículo devuelto también tendrá las siguientes propiedades adicionales:
groups
- Un objeto de grupos de captura con nombre que tienen claves como nombres y valores como coincidencias capturadas.index
- El índice de búsqueda donde se encontró el resultado.input
- Una copia de la cadena de búsqueda.
Ejemplo 2: secciones coincidentes en una cadena
const string = "My name is Albert. YOUR NAME is Soyuj."; // expression matches case-insensitive "name is"+ any alphabets till period (.) const re = /namesiss(a-zA-Z)+./gi; let result = string.match(re); console.log(result); // ( 'name is Albert.', 'NAME is Soyuj.' ) // using named capturing groups const re1 = /namesiss(?(a-zA-Z)+)./i; let found = string.match(re1); console.log(found.groups); // (name: "Albert")
Salida
('nombre es Albert', 'NOMBRE es Soyuj.') (nombre: "Albert")
Aquí, hemos usado una expresión regular para hacer coincidir una cierta porción de la cadena. También podemos capturar ciertos grupos en el partido usando la sintaxis como se muestra arriba.
Lectura recomendada: JavaScript String matchAll ()