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 ()