Hola todos :
Algo que me gusta de las
regular expressions es la capacidad de usar rangos. Y no me refiero solo a los nativos como
/\d/
que busca cualquier dígito (0 a 9), sino también a los que toma del ordenamiento unicode.
Por ejemplo, si queremos reemplazar todas las aes acentuadas de una cadena por "a", podemos buscar dónde empieza y donde termina en el ASCII la serie
...Þßàáâãäå
æç...
y usar
/[à-å]/
Código:
<input style = "font-family:serif; font-size:20pt;" type = "button"
onclick = "this.value = this.value.replace(/[à-å]/g , 'a');" value = "àzáyâxãwävå" />
Cabe aclarar que la "
g" es por "
global", es decir, que busca en toda la cadena y no se detiene al encontrar la primera coincidencia.
Seguramente se verá en más detalle después, cuando el tema llegue a los
switches.
Aprovecho para hacer una aclaración sobre
search, en realidad no devuelve 0 ó -1, sino el índice de la primera aparición en una cadena (por supuesto, no acepta
global).
Código:
<input style="font-family:serif; font-size:20pt;" type="button"
onclick="this.value = 'La primera \'b\' esta en el index = '+this.value.search(/b/);"
value="abacaba" />
Y otra sobre
Cita: replace. // es un método de String, busca y reemplaza.
miCad=unaCad.replace(miExp,$1,$2)
Los
$1,$2 no se refieren en ese caso a cadenas que terminen en "1" y "2", sino que los números (del 1 al 9) son los últimos patrones que se usaron -entre "
(" y "
)"- y están en la "memoria" del escript.
Código:
<input style="font-family:serif; font-size:20pt;" type="button"
onclick="this.value = this.value.replace(/(ALFA )(MIKE )(ZULU )/, '$3 $2 $1');"
value="ALFA MIKE ZULU " />
Ésto no parece muy "javascript". Seguramente está tomado de otro lenguaje. ¿Alguien sabe de dónde salieron las expresiones regulares?.
saludos
furoya