Un altro modo per rappresentare una stringa è dichiarare una
sequenza di caratteri:
re=/d-k/;. Questa RegExp cercherà:
tutti i caratteri compresi fra lettera d e la lettera k minuscole incluse "d" e "k". Per cercare tutte le lettere minuscole si potrebbe dunque usare
re=/a-z/;, e per le maiuscole (ormai il meccanismo è chiaro):
re=/A-Z/; mentre le cifre da 0 a 9 avremo
re=/0-9/;
Per tutte le maiuscole e minuscole? Semplice:
re=/a-zA-Z/;.
Qui c'è una piccola particolarità: ho scritto
a-zA-Z senza spazi: in effetti scrivere un "range" di caratteri è lo stesso che scriverli tutti quanti: cioè scrivere
a-zA-Z è lo stesso che scrivere
abcdef....yzABCD...YZ. Solo che la notazione con il trattino è più veloce, ed è di fatto più comoda da usare, come ho fatto nello script oggetto di questo tutorial scrivendo
[A-Z].
E le parentesi quadre?
C'è una cosa che ancora non ho scritto, ma che è sottintesa: se scriviamo una "stringa" fra gli slash come abbiamo visto finora effettivamente noi cerchiamo quella particolare sottostringa; quindi in
re=/a-zA-Z/; noi stiamo effettivamente indicando una sottostringa
composta da tutte le lettere dell'alfabeto minuscole seguite da tutte le lettere maiuiscole. Un po' riduttivo no? Se invece ci interessa (come di fatto è) cercare
delle lettere minuscole o maiuscole useremo la parentesi quadre attorno alla definizione.
Se le inseriamo attorno alla prima RegExp scritta:
re=/[d-j]/; definiremo
un set di caratteri quindi, nel caso dello scriptino di test, non cercheremmo la parola esatta, ma
una qualsiasi o più di una delle lettere definite nel charset. Nello scriptino che segue sostituiamo
ad ogni occorrenza delle lettere comprese fra d ed k la lettera o:
<HTML>
<BODY BGCOLOR="#ffffff">
<SCRIPT>
<!--
var stringa="HTML e' un linguaggio di programmazione.";
alert(stringa);
re=/[d-k]/gi;
stringa=stringa.replace(re,"o");
alert(stringa);
//-->
</SCRIPT>
</BODY>
</HTML>
|
(ok, l'esempio è stupido, non vogliatemene :-))