Método exec
El método exec realiza una búsqueda en
una cadena según una expresión regular dada. El resultado devuelto es la
subcadena encontrada y sus grupos de captura. Además, cada
llamada posterior a este método
comenzará la búsqueda desde el punto
donde terminó la anterior
subcadena encontrada. Si no se encuentra
ninguna coincidencia, se devuelve null.
Sintaxis
expresión_regular.test(cadena);
Ejemplo
Comprobemos el funcionamiento del método:
let str = '12 34 56';
let reg = /\d+/g;
let res1 = reg.exec(str);
console.log(res1);
let res2 = reg.exec(str);
console.log(res2);
let res3 = reg.exec(str);
console.log(res3);
let res4 = reg.exec(str);
console.log(res4);
Resultado de la ejecución del código:
[12]
[34]
[56]
null
Ejemplo
Utilicemos el método en un bucle:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Resultado de la ejecución del código:
[12]
[34]
[56]
Ejemplo
Las coincidencias encontradas se pueden desglosar en grupos de captura:
let str = '12 34 56';
let reg = /(\d)(\d)/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Resultado de la ejecución del código:
[12, 1, 2]
[34, 3, 4]
[56, 5, 6]
Ejemplo
Usando la propiedad lastIndex
se puede establecer la posición desde la cual
comenzar la búsqueda:
let str = '12 34 56';
let reg = /\d+/g;
reg.lastIndex = 2;
let res1 = reg.exec(str)
console.log(res1);
let res2 = reg.exec(str)
console.log(res2);
Resultado de la ejecución del código:
[34]
[56]
Ejemplo
Usando el modificador y
se puede fijar la posición
de inicio de la búsqueda:
let str = '12 34 56';
let reg = /\d+/y;
reg.lastIndex = 2;
let res1 = reg.exec(str)
console.log(res1);
let res2 = reg.exec(str)
console.log(res2);
Resultado de la ejecución del código:
null
[12]