lunes, 9 de mayo de 2011

Expresiones regulares: diferencia entre match y exec

En javascript las funciones String.match() y RegExp.exec() son muy parecidos. Su única diferencia está en que si se usa la opción g (global), el segundo retornará el primer match y todos lo grupos que se hayan definido en la expresión regular, mientras que el primero no retorna los grupos.
Ejemplo:
texto = "aaaa12345aaaa";
regex = /(aaaa)(.*)(aaaa)/g;
errorExec = regex.exec(texto);  // [aaaa12345aaaa, aaaa, 12345, aaaa]
errorMatch = texto.match(exec); // [aaaa12345aaaa]

No hay comentarios.: