ES6 - RegExp
Un'espressione regolare è un oggetto che descrive uno schema di caratteri. Le espressioni regolari sono spesso abbreviate "regex" o "regexp".
Il JavaScript RegExp class rappresenta le espressioni regolari e sia String che RegExp definiscono metodi che utilizzano espressioni regolari per eseguire potenti funzioni di corrispondenza dei modelli e di ricerca e sostituzione sul testo.
Un'espressione regolare può essere definita come -
var pattern = new RegExp(pattern, attributes);
OR
var pattern = /pattern/attributes;
L'attributo può avere qualsiasi combinazione dei seguenti valori.
Suor n | Attributo e descrizione |
---|---|
1 | G Partita globale |
2 | I Ignora maiuscole e minuscole |
3 | M Multilinea; considera i caratteri di inizio e fine (^ e $) come se lavorassero su più righe (cioè, corrispondono all'inizio o alla fine di ogni riga (delimitata da \ n o \ r), non solo all'inizio o alla fine dell'intera stringa di input ) |
4 | U Unicode; tratta il modello come una sequenza di punti di codice Unicode |
5 | Y Appiccicoso; corrisponde solo all'indice indicato dalla proprietà lastIndex di questa espressione regolare nella stringa di destinazione (e non cerca di trovare una corrispondenza da eventuali indici successivi) |
Costruire espressioni regolari
Parentesi
Le parentesi quadre ([]) hanno un significato speciale quando vengono utilizzate nel contesto di espressioni regolari. Sono usati per trovare una serie di caratteri.
Suor n | Espressione e descrizione |
---|---|
1 | [...] Qualsiasi carattere tra parentesi |
2 | [^...] Qualsiasi carattere non compreso tra parentesi |
3 | [0-9] Corrisponde a qualsiasi cifra decimale compresa tra 0 e 9 |
4 | [a-z] Corrisponde a qualsiasi carattere dal minuscolo a in minuscolo z |
5 | [A-Z] Corrisponde a qualsiasi carattere da maiuscolo A attraverso la Z maiuscola |
6 | [a-Z] Corrisponde a qualsiasi carattere dal minuscolo a attraverso la Z maiuscola |
Gli intervalli mostrati sopra sono generali; puoi anche usare l'intervallo [0-3] per trovare qualsiasi cifra decimale compresa tra 0 e 3 o l'intervallo [bv] per trovare qualsiasi carattere minuscolo compreso tra b e v.
Quantificatori
La frequenza o la posizione delle sequenze di caratteri tra parentesi e dei singoli caratteri possono essere contrassegnati da un carattere speciale. Ogni carattere speciale ha una connotazione specifica. Il+, *, ?, e $ le bandiere seguono tutte una sequenza di caratteri.
Suor n | Espressione e descrizione |
---|---|
1 | p+ Corrisponde a qualsiasi stringa contenente almeno uno p. |
2 | p* Corrisponde a qualsiasi stringa contenente zero o più p's |
3 | p? Corrisponde a qualsiasi stringa contenente uno o più file p's |
4 | p{N} Corrisponde a qualsiasi stringa contenente una sequenza di N p's |
5 | p{2,3} Corrisponde a qualsiasi stringa contenente una sequenza di due o tre p's |
6 | p{2, } Corrisponde a qualsiasi stringa contenente una sequenza di almeno due p's |
7 | p$ Corrisponde a qualsiasi stringa con p alla fine di esso |
8 | ^p Corrisponde a qualsiasi stringa con p all'inizio di esso |
9 | [^a-zA-Z] Corrisponde a qualsiasi stringa che non contenga nessuno dei caratteri che vanno da a attraverso z e A attraverso Z |
10 | p.p Corrisponde a qualsiasi stringa contenente p, seguito da un carattere qualsiasi, a sua volta seguito da un altro p |
11 | ^.{2}$ Corrisponde a qualsiasi stringa contenente esattamente due caratteri |
12 | <b>(.*)</b> Corrisponde a qualsiasi stringa racchiusa tra <b> e </b> |
13 | p(hp)* Corrisponde a qualsiasi stringa contenente un file p seguito da zero o più istanze della sequenza hp |
Personaggi letterali
Suor n | Carattere e descrizione |
---|---|
1 | Alphanumeric Si |
2 | \0 Il carattere NULL (\ u0000) |
3 | \t Tab (\ u0009) |
4 | \n Nuova riga (\ u000A) |
5 | \v Tabulazione verticale (\ u000B) |
6 | \f Avanzamento modulo (\ u000C) |
7 | \r Ritorno a capo (\ u000D) |
8 | \xnn Il carattere latino specificato dal numero esadecimale nn; ad esempio, \ x0A è uguale a \n |
9 | \uxxxx Il carattere Unicode specificato dal numero esadecimale xxxx; ad esempio, \ u0009 è uguale a\t |
10 | \cX Il carattere di controllo ^ X; ad esempio, \ cJ è equivalente al carattere di nuova riga\n |
Meta-caratteri
UN meta-character è semplicemente un carattere alfabetico preceduto da una barra rovesciata che agisce per dare alla combinazione un significato speciale.
Ad esempio, puoi cercare una grande somma di denaro utilizzando il '\d'meta-carattere: / ([\ d] +) 000 /. Qui,\d cercherà qualsiasi stringa del carattere numerico.
La tabella seguente elenca una serie di meta-caratteri che possono essere utilizzati nelle espressioni regolari in stile PERL.
Suor n | Carattere e descrizione |
---|---|
1 | . Un unico personaggio |
2 | \s Un carattere di spazio (spazio, tabulazione, nuova riga) |
3 | \S Carattere diverso da spazi |
4 | \d Una cifra (0-9) |
5 | \D Una non cifra |
6 | \w Un carattere alfanumerico (az, AZ, 0-9, _) |
7 | \W Un personaggio non verbale |
8 | [\b] Un backspace letterale (caso speciale) |
9 | [aeiou] Corrisponde a un singolo carattere nel set specificato |
10 | [^aeiou] Corrisponde a un singolo carattere al di fuori del set specificato |
11 | (foo|bar|baz) Corrisponde a una qualsiasi delle alternative specificate |
Proprietà RegExp
Suor n | Proprietà e descrizione |
---|---|
1 | RegExp.prototype.flags Una stringa che contiene i flag dell'oggetto RegExp |
2 | RegExp.prototype.global Se testare l'espressione regolare rispetto a tutte le possibili corrispondenze in una stringa o solo rispetto alla prima |
3 | RegExp.prototype.ignoreCase Indica se ignorare le maiuscole / minuscole durante il tentativo di corrispondenza in una stringa |
4 | RegExp.prototype.lastIndex Indica se la proprietà di lettura / scrittura degli oggetti RegExp. |
5 | RegExp.prototype.multiline Indica se cercare o meno in stringhe su più righe |
6 | RegExp.prototype.source Il testo del pattern |
Metodi RegExp
Suor n | Metodo e descrizione |
---|---|
1 | RegExp.prototype.exec () Esegue una ricerca di una corrispondenza nel relativo parametro stringa |
2 | RegExp.prototype.test () Verifica una corrispondenza nel relativo parametro stringa |
3 | RegExp.prototype.match () Esegue una corrispondenza con la stringa data e restituisce il risultato della corrispondenza |
4 | RegExp.prototype.replace () Sostituisce le corrispondenze nella stringa data con una nuova sottostringa |
5 | RegExp.prototype.search () Cerca la corrispondenza nella stringa data e restituisce l'indice del modello trovato nella stringa |
6 | RegExp.prototype.split () Divide la stringa data in un array separando la stringa in sottostringa |
7 | RegExp.prototype.toString () Restituisce una stringa che rappresenta l'oggetto specificato. Sostituisce il metodoObject.prototype.toString () |