Espressione regolare di JavaScript

Espressione regolare di JavaScript
Molti programmatori hanno familiarità con l'idea che l'espressione regolare sia un concetto utile ma sottovalutato. Ma non sanno molto bene come usare espressioni regolari in modo efficiente. Le espressioni regolari sono usate non solo in JavaScript, ma in quasi tutti gli altri linguaggi di programmazione. In questo articolo, imparerai le espressioni regolari passo dopo passo. Dovrebbe essere facile per i programmatori di qualsiasi livello comprendere i concetti trattati in questo articolo.

UN Espressione regolare è un oggetto in cui vengono dati i modelli per abbinare la stringa desiderata.

Sintassi

La sintassi per un'espressione regolare è molto semplice e può essere scritta come segue:

/pattern/flags

UN modello è una stringa in cui si fornisce uno schema per abbinare un'altra stringa.
Bandiere sono attributi opzionali che servono a vari scopi. Ad esempio, la bandiera "G" sta per "globale", tra molti altri.

La portata delle espressioni regolari è molto ampia. Ti mostreremo quelli di base che sono più necessari per la programmazione attraverso una spiegazione passo-passo e alcuni esempi di vita reale.

Esistono molti metodi in cui potrebbe essere necessario utilizzare espressioni regolari, ad esempio nei metodi di ricerca (), match (), match () e split () di JavaScript. Inizieremo con una semplice ricerca di stringhe senza usare l'espressione regolare e, successivamente, ti mostreremo come eseguire la stessa ricerca usando espressioni regolari.

Esempi

Supponiamo prima la stringa:

Sia str = "LinuxHint è fantastico. Linuxhint funziona alla grande e si esibisce al 100%."

Abbiamo ripetuto la stessa parola "Grande" E "Linuxhint"Nella frase. Lo scopo di questa strana stringa diventerà ovvio in un momento.

Bene! Ora scriveremo semplicemente il metodo String di ricerca JavaScript per cercare il termine "lavoro"

str.Search ("lavoro");


Come puoi vedere, mostra l'indice da dove è iniziata la sottostringa data. Ora andremo avanti e proveremo a fare la stessa cosa con la sintassi di Regex.

Passaggio 1: cercare e sostituire una sottostringa

È possibile cercare una stringa corrispondente usando un'espressione regolare semplicemente posizionando la sottostringa tra le due barre nell'espressione.

str.Search (/Work/);


Come puoi vedere, ci ha anche dato lo stesso output.

Bene! Ora vedremo cosa possiamo fare con l'espressione regolare. Cerchiamo di sostituire la parola "Grande"Con, diciamo,"Eccezionale"Utilizzo del metodo Sostituisci ().

str.Sostituisci ("Great", "Awesome");


Qui, puoi vedere il problema: la prima occorrenza di "Grande"È stato sostituito, ma il secondo no.

Nel primo passaggio, hai semplicemente imparato a cercare una stringa usando un'espressione regolare. Ora ci sposteremo verso il prossimo passo e impareremo il concetto di bandiere.

Passaggio 2: bandiere

In questo passaggio, imparerai di più sul concetto e sullo scopo delle bandiere nelle espressioni regolari. Useremo il metodo di sostituzione di JavaScript per spiegare questa idea.

Se si desidera sostituire tutte le occorrenze di "Grande,"Puoi usare l'espressione regolare con il 'G'Flag, che è abbreviato per globale.

str.Sostituisci (/Great/G, "Awesome");


Perfetto, tutte le occorrenze di "Great" sono ora cambiate. Ma potresti affrontare un problema se provi a cambiare tutte le occorrenze di "Linuxhint" in "Il nostro sito Web" utilizzando la stessa tecnica.

Cercheremo prima di farlo, quindi vedremo come possiamo risolvere questo problema.

str.Sostituisci (/Linuxhint/G, "Il nostro sito Web");


Sebbene abbiamo fornito alla bandiera globale l'espressione regolare, la prima occorrenza non cambia. Ciò è dovuto alla sensibilità al caso. Quindi, dovremo anche fornire la bandiera dell'insensibilità del caso 'io,' in questo caso. Puoi farlo semplicemente aggiungendo il 'io'bandiera insieme al' 'G' bandiera.

str.Sostituire (/Linuxhint/GI, "Il nostro sito Web");


Grande. Come puoi vedere, tutte le occorrenze del termine "Linuxhint"Sono stati cambiati nel termine"il nostro sito web,"Indipendentemente dalla sensibilità al caso.

Allo stesso modo, è possibile utilizzare espressioni regolari nella funzione split () di JavaScript.

str.split (/linuxhint/gi);


Bene! La funzione ha funzionato bene. Il metodo Split () ha restituito l'array di substrings, in base al termine "LinuxHint". Ma, se vuoi includere anche i separatori nella vasta gamma della sottostringa, dovrai giocare con i motivi.

Quindi, in questo passaggio, abbiamo imparato le bandiere e come ci aiutano. Ci sono più bandiere disponibili. Ad esempio, "M" è per la corrispondenza multilina, "s" è per tutti, ecc. Ora passeremo al concetto di schemi e impareremo come usare questi elementi.

Passaggio 3: modelli

In questo passaggio, imparerai come utilizzare i modelli e le opzioni correlate.
Per includere i separatori nell'array della sottostringa, aggiungi semplicemente parentesi attorno al modello, come si può vedere nella seguente immagine:

str.split (/(linuxhint)/gi);


Perfetto! Come puoi vedere, i separatori sono inclusi anche nella matrice di substringe.

Per dividere la base di due separatori, è possibile dare più sottostringi in un'espressione regolare usando o "|" operatore.

str.split (/linuxhint | great/gi);


Va bene! L'operatore ha funzionato alla grande, poiché ci aspettiamo che si dividesse.

Retroscena

Ora, di dividersi tra la base dello spazio "" o il punto "."Significato per aggiungere caratteri speciali nell'espressione regolare, aggiungi una retroscena" \ "prima di eventuali caratteri speciali.

str.Split (/\ | \./gi);


Ok, finora, tutto bene. Ad esempio, diciamo, vuoi cambiare i punti in virgole nella seguente espressione:

str.sostituire(/\./G, ",");


Ha funzionato!

Le backslashes sono usate anche per un altro scopo. Per cercare qualsiasi parola, cifra o spazio, puoi usare rispettivamente \ w, \ d e \ s. Ad esempio, per sostituire gli spazi con trattini, viene utilizzata la seguente espressione:

str.sostituire (/\ s/g, "-");


Eccezionale! Puoi davvero vedere il potenziale nelle espressioni regolari, ora.

Parentesi quadre [ ]

Se si desidera sostituire più caratteri in una stringa, puoi fornirli tutti in una singola staffa quadrata e saranno sostituiti dalla sottostringa data. Ad esempio, se si desidera sostituire tre lettere in una stringa e non si desidera mettere molto o "|" Operatori nell'espressione regolare, è possibile utilizzare la sintassi della staffa quadrata, in cui è possibile dare più lettere, come questa:

str.sostituire (/[nia]/g, "u");


Puoi anche dare una gamma di lettere, come questa:

str.sostituire (/[g-l]/g, "u");


Oppure, un intervallo di numeri:

str.sostituire (/[0-5]/g, "9");


E, se si desidera escludere i personaggi forniti tra parentesi quadrate, puoi usare il carattere di cura, in questo modo:

str.sostituire (/[^g-l]/g, "t");


Ciò è utile quando si ottiene dati dagli utenti e si verificano e convalidano tali dati, in particolare in e -mail, telefono o convalida della data.

Conclusione

Questo articolo ha appena graffiato la superficie dell'espressione regolare JavaScript. Copre i concetti solo dal principiante al livello intermedio. C'è molto di più da imparare sull'espressione regolare e puoi usare questa espressione per fare molte cose a cui potresti non aver nemmeno pensato. Per continuare ad imparare, lavorare e ottenere più esperienza in JavaScript, dai un'occhiata a altri articoli su questo argomento su Linuxhint.com.