| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec | [Back] [Original] |
Get to know MDN better
Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.
This feature is well established and works across many devices and browser versions. Its been available across browsers since julio de 2015.
El mtodo exec() ejecuta una busqueda sobre las coincidencias de una expresin regular en una cadena especifica. Devuelve el resultado como array, o null.
Si est ejecutando una expresin regular solo para buscar si algo se cumple o no, usa el mtodo RegExp.prototype.test() o el mtodo String.prototype.search().
regexObj.exec(cadena)
cadenaCadena sobre la cual se quiere aplicar la expresin regular
Si se encuentran coincidencial, el mtodo exec() devuelve un array y actualiza las propiedades del objeto de la expresin regular. El array devuelto contiene los elementos encontrados en su primer elemento, y un elemento por cada parte de la expresin regular que se encuentra entre parentesis y se encuentra dentro del texto que fu capturado.
Si la busqueda falla, el mtodo exec() devuelve null.
Considerando el siguiente ejemplo:
// Busca "quick brown" seguido de "jumps", ignorando los caracteres que se
// encuentren entre medias.
// Recuerda "brown" y "jumps"
// Ignora mayusculas y minusculas
var re = /quick\s(brown).+?(jumps)/gi;
var result = re.exec("The Quick Brown Fox Jumps Over The Lazy Dog");
La siguiente tabla muestra el resultado de este script:
| Objeto | Propiedad/ndice | Descripcin | Ejemplo |
result |
[0] |
Todas las partes de la cadena que cumplen la expresin regular | Quick Brown Fox Jumps |
[1],...[n] |
Las subcadenas entre parentesis que han sido encontradas, si hay alguna. El nmero de subcadenas encontradas es ilimitado |
[1] = Brown
|
|
index |
El ndice de base-0 del elemento encontrado en la cadena. | 4 |
|
input |
La cadena original. | The Quick Brown Fox Jumps Over The Lazy Dog |
|
re |
lastIndex |
El ndice sobre el cual empieza la siguiente busqueda. Cuando no se usa g (busqueda global), esto va a ser siempre 0. | 25 |
ignoreCase |
Indica si la bandera "i" ha sido usada para ignorar
mayusculas y minusculas.
|
true |
|
global |
Indica si la bandera "g" fue usada para hacer una busqueda
global.
|
true |
|
multiline |
Indica si la bandera "m" fue usada para buscar en cadenas
sobre multiples lineas
|
false |
|
source |
El texto del patrn de busqueda | quick\s(brown).+?(jumps) |
Si tu expresin regular contiene la bandera "g", puedes usar el mtodo exec() varias veces para encontrar coincidencias sucesivas en la misma cadena. Cuando lo haces, la busqueda empieza en la subcadena str especificada por la propiedad lastIndex de la expresin regular (test() tambin movera hacia adelante el indice de la propiedad lastIndex). Por ejemplo, asumiendo que tienes este script:
var myRe = /ab*/g;
var str = "abbcdefabh";
var myArray;
while ((myArray = myRe.exec(str)) !== null) {
var msg = "Se ha encontrado " + myArray[0] + ". ";
msg += "La siguiente coincidencia empieza en el indice " + myRe.lastIndex;
console.log(msg);
}
Este script muestra el siguiente texto:
Se ha encontrado abb. La siguiente coincidencia empieza en el indice 3 Se ha encontrado ab. La siguiente coincidencia empieza en el indice 9
Nota: No uses la expresin regular literalmente (o el constructor RegExp) dentro de la condicin del bucle while o se crear un bucle infinito si hay una coincidencia, por culpa de que la propiedad lastIndex va a ser reiniciada por cada iteracin del bucle. Adems asegurate de que has usado la bandera de busqueda global "g" o se crear un bucle tambin.
exec() con RegExp literalesTambin se puede usar exec() sin crear un objeto de RegExp:
var matches = /(hola \S+)/.exec("Esto es un hola mundo!");
console.log(matches[1]);
Esto loguear un mensaje que contiene 'hola mundo!'.
| Specification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-regexp.prototype.exec |
RegExpThis page was last modified on 17 dic 2024 by MDN contributors.
RegExpObject/FunctionYour blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |