Guía JavaScript 1.5:Trabajar con expresiones regulares:Usar coincidencias de subcadenas parentizadas
De MDC
[editar] Usar coincidencias de subcadenas parentizadas
La inclusión de paréntesis en un patrón de expresión regular causa que la sub coincidencia correspondiente sea recordada. Por ejemplo, /a(b)c/ coincide los caracteres 'abc' y recuerda el caracter 'b'. Para reinvocar estas coincidencias de subcadenas parentizadas, utilice el arreglo de elementos [1], ..., [n].
El número de posibles subcadenas parentizadas es ilimitado. El arreglo retornado mantiene todas aquellas coincidencias que fueron encontradas. Los siguientes ejemplos ilustran como usar las coincidencias de subcadenas parentizadas.
Ejemplo 1.
El siguiente script utiliza el método replace para intercambiar las palabras en la cadena. Para el texto de reemplazo, el script utiliza $1 y $2 en el reemplazo para denotar la primera y la segunda coincidencias de subcadenas parentizadas.
<script type="text/javascript"> re = /(\w+)\s(\w+)/; str = "John Smith"; newstr = str.replace(re, "$2, $1"); document.write(newstr); </script>
Esto imprime "Smith, John".
Ejemplo 2.
Nota: en la función getInfo, el método exec es invocado utilizando la notación cortocircuitada () que trabaja en Firefox pero no en la mayoría de los otros navegadores.
<html>
<script type="text/javascript">
function getInfo(field){
var a = /(\w+)\s(\d+)/(field.value);
window.alert(a[1] + ", your age is " + a[2]);
}
</script>
Ingrese su primer nombre y su edad y luego presione Enter.
<form>
<input type="text" name="NameAge" onchange="getInfo(this);">
</form>
</html>