Esempi di espressioni regolari (RegEx) in javascript
lunedì 14 Gennaio 2013Le espressioni regolari (RegEx in forma abbreviata o Regular Expression in inglese) sono una sequenza di simboli per il controllo e la verifica delle stringhe. La funzione che processa la stringa, definita dall’espressione regolare, restituisce un dato boolean true qual’ora la stringa soddisfa le esigenze della funzione o false in caso contrario.
In passato avevo parlato di LiveValidator, uno script in jQuery per il controllo dei dati contenuti nei form. Lo script contiene di default alcune RegExp come il controllo sui campi numerici o le e-mail. Avendo incontrato la necessità di un controllo per altri tipi di stringhe ho realizzato per ciascuna un’espressione regolare in javascript, ecco alcuni esempi:
Controllo RegExp Codice Fiscale
/^[A-Za-z]{6}[0-9]{2}[A-Za-z]{1}[0-9]{2}[A-Za-z]{1}[0-9]{3}[A-Za-z]{1}$/ |
Controllo RegExp Partita Iva
/^[0-9]{11}$/ |
Controllo RegExp Telefono
/^[0-9]+\/[0-9]+$/ |
Controllo RegExp E-mail
/^[\w\-\.]*[\w\.]\@[\w\.]*[\w\-\.]+[\w\-]+[\w]\.+[\w]+[\w $]/ |
Controllo RegExp Data
/(0[1-9]|[12][0-9]|3[01])[\/](0[1-9]|1[012])[\/](19|20)\d\d/ |
Se non sapete come inserire una RegEx personalizzata con LiveValidator, di seguito potete copiare la sintassi corretta (ad esempio per il controllo della partita iva):
<input type="text" name="partitaiva" id="partitaiva" /> <script type="text/javascript"> var str = new LiveValidation('partitaiva'); str.add(Validate.Format, { pattern: /^[0-9]{11}$/, failureMessage: "Partita IVA errata" } ); </script> |
Scrivere espressioni regolari in modo corretto non è sempre semplice, molto spesso nel web (forum e commenti dei blog) si trovano RegEx sbagliate, per questo motivo ho deciso di condividere con i miei lettori alcune delle principali Regular Expression in javascript.
Avete bisogno di un controllo diverso da quelli presentati? Scrivi un commento e cercherò di inserire l’espressione regolare corretta.
Massimo
8 Agosto 2013, 06:56
Ciao, se volessi validare un numero di questo tipo??
1.234.567.890,12
Dove i numeri interi non devono essere necessariamente presenti.
Es. validi: 0,1 – 10,00 – 100,11 – 10 – 100 – 1.000 – 1.000,50
supermucca
1 Gennaio 2014, 19:51
Per quanto riguarda la partita iva il controllo è un po più complesso che il semplice numero di cifre numeriche uguali a 11. Wikipedia riporta la formula di Luhn che non credo possa essere trasposta in regular expression (perlomeno io non sono riuscito a farlo).
Dack
3 Aprile 2014, 16:57
Ciao… per la data è meglio usare questa:
^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$
Da validazione anche sul 29-30-31 febbraio tenendo conto degli anni bisestili
Simone Forti
3 Aprile 2014, 17:06
Grazie Dack!
donatella
3 Febbraio 2015, 14:49
Ciao, avrei bisogno di una regex per validare sia un eventuale dominio “vodafone.com” che 138.132.112.112:8080″ ma anche 0243882547 ho provato con questa , in js, ma non funziona molto bene. Hai qualche suggerimeto?
‘^[a-zA-Z0-9]\.[a-zA-Z\-\_\:]+\.[a-zA-Z#]+$’
Grazie ciao
Gabry
Giorgio Carrozzini
5 Agosto 2017, 18:16
Ciao un regex per verificare che in un campo venga inserito un C.F. conforme o partita iva. Alcuni professionisti e aziende hanno il C.F. uguale alla P.IVA…
Giorgio Carrozzini
5 Agosto 2017, 19:01
Questa sembra funzionare… /(^[A-Z]{6}[0-9]{2}[A-Z][0-9]{2}[A-Z][0-9]{3}[A-Z])|(^[0-9]{11})$/