[JAVASCRIPT]REGULAR EXPRESSION
Che cos'è?
Una Espressione Regolare è un linguaggio utilizzato per descrivere la "forma" o la "sintassi" di una stringa.
Ad esempio?
Nella realizzazione di un form con inserimento di codice fiscale, possiamo stabilire le regole per cui dovrà essere scritta la stringa, che deve essere appunto di lunghezza fissa: 16 caratteri alfanumerici (sintassi).
----------------
1.Ogni stringa deve iniziare con uno slash "/" e finire con uno slash "/";
2.Può contenere una lista di caratteri che specificano la sintassi della stringa e la forma, essi variano anche in base alla loro posizione.
Classi speciali di caratteri:
- ^ « apice » ha due significati: se messo all’inizio della regex impone che la linea cominci con quello che segue l’apice; se usato con le parentesi quadre e messo prima di un carattere significa: tranne il carattere che segue, è una negazione
- $ « dollaro » se messa alla fine della regex impone che la linea finisca con quello che precede il dollaro
- . « punto » qualunque carattere
- * « asterisco » accetta zero o più ripetizioni del carattere precedente
- + « più » accetta una o più ripetizioni del carattere precedente
- [ ] « parentesi quadre » tutti i caratteri all’interno delle [ ] sono accettati: le due parentesi si comportano come un singolo carattere
- [^ ] « parentesi quadre con apice » tutti i caratteri tranne quelli all’interno delle [ ] sono accettati
- / « slash » inizia/termina l’espressione regolare
- \ « barra rovesciata » tratta il carattere speciale che segue come un normale carattere testuale o viceversa tratta un normale carattere come un carattere speciale
- [:alpha:] « tutte le lettere dalla ‘a’ alla ‘z’ sia maiuscole che minuscole e comprese quelle accentate
- [:lower:] « tutte le lettere dalla ‘a’ alla ‘z’ minuscole, comprese quelle accentate
- [:upper:] « tutte le lettere dalla ‘A’ alla ‘Z’ maiuscole, comprese quelle accentate
- [:digit:] « tutti i numeri (da ‘0’ a ‘9’)
- [:alnum:] « come [:alpha:] e [:digit:] insieme: tutti i numeri e tutte le lettere sia maiuscole che minuscole
- [:space:] « spazi
- [:blank:] « spazi e tab
- [:cntrl:] « caratteri di controllo: sono tutti quei caratteri che non si possono stampare come il “fine riga”
- [:print:] « opposto di [:cntrl:]: tutti i caratteri che non sono caratteri di controllo
- [:print:] « tutti i caratteri visibili, quindi ad esempio gli spazi sono esclusi, la punteggiatura è inclusa ecc…
- [:punct:] « tutti i caratteri di punteggiatura
- [:xdigit:] « corrisponde al carattere [0-9a-fA-F]: cioè tutti i caratteri che possono formare un numero esadecimale (da 0 [zero] ad F)
Espressioni Regolari
- /./ « corrisponde a qualunque linea che contiene almeno un carattere
- /../ « corrisponde a qualunque linea che contiene almeno due caratteri
- /^#/ « corrisponde a qualunque linea che comincia con il carattere # (cancelletto)
- /^$/ « corrisponde a qualunque linea vuota
- /}$/ « corrisponde a qualunque linea finisca con ‘}’
- /} *$/ « corrisponde a qualunque linea finisca con una ‘}’ seguita da zero o più spazi (nota che c’è uno spazio tra la graffa e l’asterisco, quindi l’asterisco agisce sullo spazio)
- /[abc]/ « corrisponde a qualunque riga contenga anche uno solo tra i caratteri ‘a’, ‘b’, o ‘c’ minuscoli
- /^[abc]/ « corrisponde a qualunque riga cominci con ‘a’, ‘b’, o ‘c’ minuscoli
- /^ciao$/ « corrisponde a linee che contengono la sola parola “ciao” tutta in minuscolo, e nient’altro
- /^[Cc]iao/ « corrisponde a tutte le linee che cominciano con “ciao” o “Ciao”
- /^[Cc]iao+$/ « corrisponde a tutte le righe che contengono la sola parola “ciao” con iniziale maiuscola o minuscola e qualunque numero di “o” finali, ma almeno una (es. “Ciaoooo”, “ciao”, “ciaooo”. La parola “cia” è scartata)
- /Eh[eh]*/ « corrisponde a tutte le righe che contengono “Eh” seguita da un qualunque numero e combinazione di lettere ‘e’ ed ‘h’ (es. “Eheheheh”, “Ehhehhheeehehe”, “Eh”, “anchEhcosì”)
- /^[a-z]+$/ « corrisponde a qualunque riga composta da sole lettere minuscole, senza numeri o simboli ma almeno 1 carattere ( [a-z] = caratteri dalla ‘a’ alla ‘z’); attenzione perché le lettere accentate sono escluse
- /^[A-Za-z]+$/ « come il precedente ma accetta anche le maiuscole
- /^[0-9]+$/ « come il precedente ma con solo numeri
- /^a\{6\}$/ « corrisponde alla sola riga “aaaaaa”, significa che il carattere ‘a’ dev’essere ripetuto 6 volte. Le parentesi graffe sono precedute dal carattere speciale ‘\’ perché altrimenti verrebbero trattate come caratteri normali
- /^[0-9]\{5\}$/ « corrisponde a qualunque riga che contenga esattamente 5 numeri e nient’altro.
- /[^s]/ « corrisponde a qualunque riga che NON contiene la lettera ‘s’ minuscola
- [^[0-9]] « corrisponde a qualunque riga che non contiene dei numeri
- [[:punct:]] « corrisponde a qualunque riga contenga dei caratteri di punteggiatura
- [[:space:]0-9] « corrisponde a qualunque riga contenga degli spazi bianco o dei numeri
- [[:space:][:digit:]] « come il precedente
Alcuni esempi dove possiamo applicare le Regular Expression.
Codice fiscale:
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Data di nascita:
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
E-mail:
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
La guida finisce qua.
Se vi servono altri chiarimenti non esitate a contattarmi (anche in privato). :bye: