• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

JavaScript [JS]Regular Expression

Mi.ke

Utente Master
Autore del topic
16 Giugno 2011
2.857
60
Miglior risposta
0
[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).

----------------
Regole delle Regular Expression

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.

  • ^ « 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
Classi speciali di caratteri:


  • [: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 :emoji_slight_smile:
  • /}$/ « 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:
 
bella guida..una domanda a @ptm ho visto regex replace test,a che serve?

Serve per testare le espressioni regolari... per esempio
160xuvc.png

vedi che è evidenziato in blu la parte che corrisponde al pattern della stringa regolare (che in questo caso serve per verificare che una mail sia corretta)... nel menù a sinistra puoi selezionare che tipo di espressione vuoi inserire: pcre (php), javascript o python
 
  • Like
Reactions: 1 person