Come usare le espressioni regolari con Javascript

Spesso è necessario dover controllare che il testo inserito dall’utente sia sintatticamente corretto, come ad esempio quando viene richiesta la mail, oppure bisonga verificare, come è successo a me, che il testo inserito non contenga codice web malevolo che potesse essere interpretato dal server.  Ecco quindi perchè si usano le espressioni regolari.

 

Esse sono un metodo per definire la forma sintattica che devono avere le stringhe inserite dall’utente. Un esempio lampante è quello dell’indirizzo email: L’espressione regolare deve verificare che la stringa inserita contenga dei caratteri alfanumerici tutti minuscoli, che siano seguiti da una chiocciola, e poi di nuovo da caratteri e da un’estensione di dominio. Vediamo come dichiarare un’espressione regolare e usarla per testare la correttezza sintattica:

è sufficiente dichiarare una variabile e ad essa assegnare le regole all’interno di “/…/”, ad esempio

var regexp = /^([a-zA-Z0-9])([a-zA-Z0-9_\.,;:?!’\s]*)|([èéòà]*)$/;

questa è l’espressione regolare che ho usato per verificare il contenuto di un form, e anche se voi forse non lo vedete li c’è scritto chiaramente che il testo deve iniziare con un carattere minuscolo o maiuscolo o con un numero, può essere seguito da quanti caratteri vuoi, da spazi, da simboli di punteggiatura, e da lettere accentate, ma non da trattini, da “under score” o da parentesi di nessun genere. Questo invece è il codice che ho usato per verificare che il testo fosse corretto:

if ((form.testo.value == ”)||(regexp.test(form.testo.value) == false))

{

alert(‘Formato testo non valido’);

form.testo.focus();

return false;

}

else

form.submit();

Sia che non ci sia testo sia che non rispetti il formato, verrà visualizzato un alert  e lo script non verrà eseguito. Vediamo adesso come definire un’espressione regolare:

 

^ indica il primo carattere della stringa

separa gli elementi di un set di caratteri: a-g significa tutti i caratteri dalla lettera a fino alla  g

[]            indicano un blocco di tipo stringa

()            indicano un blocco da concatenare ad un altro blocco

+             messo a seguito di un blocco indica che può esserci una o più occorrenze di quel blocco

es: [a]+ significa a, aa, aaa, ma non è possibile l’assenza totale di a.

*             messo a seguito di un blocco indica che può esserci nessuna o più occorrenze di quel blocco

\s            indica gli spazi

.              con il punto si indica qualsiasi carattere

\              il backslash si usa per indicare caratteri che altrimenti sono utilizzati per definire l’espressione regolare: ad esempio se voglio indicare il punto come carattere e non come “tutti i caratteri” uso proprio \.

|             equivale all’or logico: ^([a] | [c]) significa che la stringa deve iniziare con a, oppure con c.

 

In rete potrete trovare  una gran quantità di espressioni già pronte; spero di avervi aiutato a capire come interpretarle.