JavaScript

Expresie regulată Javascript

Expresie regulată Javascript
Mulți programatori sunt familiarizați cu noțiunea că expresia regulată este un concept util, dar subevaluat. Dar, ei nu știu foarte bine cum să folosească eficient expresiile regulate. Expresiile regulate sunt folosite nu numai în Javascript, ci în aproape toate celelalte limbaje de programare. În acest articol, veți afla despre expresiile regulate pas cu pas. Ar trebui să fie ușor pentru programatorii de orice nivel să înțeleagă conceptele acoperite în acest articol.

A Expresie uzuala este un obiect în care modelele sunt date pentru a se potrivi cu șirul dorit.

Sintaxă

Sintaxa pentru o expresie regulată este foarte simplă și poate fi scrisă după cum urmează:

/ model / steaguri

A model este un șir în care furnizați un model care să se potrivească cu un alt șir.
Steaguri sunt atribute opționale care au scopuri variate. De exemplu, steagul „g” înseamnă „global”, printre multe altele.

Domeniul de aplicare al expresiilor regulate este foarte larg. Vă vom arăta cele de bază care sunt cele mai necesare pentru programare printr-o explicație pas cu pas și câteva exemple din viața reală.

Există o mulțime de metode în care poate fi necesar să utilizați expresii regulate, de exemplu, în metodele de căutare (), replace (), match () și split () ale Javascript. Vom începe cu o căutare simplă în șiruri fără a utiliza expresia regulată și, mai târziu, vă vom arăta cum să efectuați aceeași căutare folosind expresii regulate.

Exemple

Mai întâi vom presupune șirul:

let str = "Linuxhint este minunat. linuxhint funcționează excelent și performant 100%."

Am repetat același cuvânt „Grozav" și "linuxhint”În expresie. Scopul acestui șir ciudat va deveni evident într-o clipă.

Bine! Acum, vom scrie pur și simplu metoda șirului de căutare Javascript pentru a căuta termenul „lucru”

str.căutare („muncă”);


După cum puteți vedea, arată indicele de unde a început „șirul” de sub șir dat. Acum, vom trece mai departe și vom încerca să facem același lucru cu sintaxa regex.

Pasul 1: Căutați și înlocuiți un șir

Puteți căuta un șir care se potrivește utilizând o expresie regulată prin simpla plasare a șirului între cele două bare în expresie.

str.căutare (/ muncă /);


După cum puteți vedea, ne-a dat și același rezultat.

Bine! Acum, vom vedea ce putem face cu expresia regulată. Să încercăm să înlocuim cuvântul „Grozav”Cu, să spunem,„minunat”Folosind metoda replace ().

str.replace ("grozav", "minunat");


Aici, puteți vedea problema: prima apariție a „Grozav”A fost înlocuit, dar al doilea nu.

În primul pas, ați învățat pur și simplu cum să căutați un șir folosind o expresie regulată. Acum, vom trece la pasul următor și vom învăța despre conceptul de steaguri.

Pasul 2: Steaguri

În acest pas, veți afla mai multe despre conceptul și scopul steagurilor în expresii regulate. Vom folosi metoda de înlocuire a Javascript pentru a explica această idee.

Dacă doriți să înlocuiți toate aparițiile „Grozav,”Puteți utiliza expresia regulată cu„g'flag, care este abrevierea globală.

str.înlocuiți (/ grozav / g, „minunat”);


Perfect, toate aparițiile „marelui” sunt acum schimbate. Dar, s-ar putea să vă confruntați cu o problemă dacă încercați să schimbați toate aparițiile „linuxhint” în, să spunem, „site-ul nostru web” utilizând aceeași tehnică.

Mai întâi vom încerca să facem acest lucru, apoi vom vedea cum putem rezolva această problemă.

str.înlocuiți (/ linuxhint / g, „site-ul nostru web”);


Deși am furnizat steagului global expresia regulată, prima apariție nu se schimbă. Acest lucru se datorează sensibilității la majuscule. Deci, va trebui, de asemenea, să oferim steagul de insensibilitate la majuscule ”eu,' în acest caz. Puteți face acest lucru pur și simplu adăugând „eu„pavilion împreună cu„g' steag.

str.înlocuiți (/ linuxhint / gi, „site-ul nostru web”);


Grozav. După cum puteți vedea, toate aparițiile termenului „linuxhint"Au fost schimbate cu termenul"siteul nostru,”Indiferent de sensibilitatea la majuscule.

În mod similar, puteți utiliza expresii regulate în funcția split () a Javascript.

str.split (/ linuxhint / gi);


Bine! Funcția a funcționat bine. Metoda split () a returnat matricea de șiruri de caractere, pe baza termenului „linuxhint”. Dar, dacă doriți să includeți și separatorii, în matricea șirului, va trebui să vă jucați cu modelele.

Deci, în acest pas, am aflat despre steaguri și despre modul în care acestea ne ajută. Există mai multe steaguri disponibile. De exemplu, „m” este pentru potrivirea pe mai multe linii, „s” este pentru dot all, etc. Acum, vom trece la conceptul de modele și vom învăța cum să folosim aceste elemente.

Pasul 3: Modele

În acest pas, veți învăța cum să utilizați modelele și opțiunile conexe.
Pentru a include separatorii în matricea șirului secundar, pur și simplu adăugați paranteze în jurul modelului, așa cum se poate vedea în următoarea imagine:

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


Perfect! După cum puteți vedea, separatoarele sunt, de asemenea, incluse în matricea de șiruri de caractere.

Pentru a împărți baza a două separatoare, puteți da mai multe șiruri de caractere într-o expresie regulată folosind SAU „|” operator.

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


In regula! Operatorul a funcționat excelent, deoarece ne așteptăm să se împartă.

Backslash

Acum, pentru a împărți între baza spațiului „„ sau punctul „.”Adică să adăugați caractere speciale în expresia regulată, adăugați o bară inversă„ \ ”înainte de orice caractere speciale.

str.împărți (/ \ | \./ gi);


Bine, până acum, atât de bine. De exemplu, să spunem, doriți să schimbați punctele în virgule în următoarea expresie:

str.a inlocui(/\./ g, ",");


A mers!

Backslashes sunt, de asemenea, utilizate în alt scop. Pentru a căuta orice cuvânt, cifră sau spațiu, puteți utiliza, respectiv, \ w, \ d și \ s. De exemplu, pentru a înlocui spațiile cu liniuțe, se folosește următoarea expresie:

str.înlocuiți (/ \ s / g, "-");


Minunat! Acum puteți vedea potențialul în expresii regulate.

Paranteza patrata [ ]

Dacă doriți să înlocuiți mai multe caractere dintr-un șir, le puteți furniza pe toate într-o singură paranteză pătrată și vor fi înlocuite cu șirul dat. De exemplu, dacă doriți să înlocuiți trei litere într-un șir și nu doriți să puneți mult "SAU" în expresia regulată, puteți utiliza sintaxa paranteză pătrată, în care puteți da mai multe litere, astfel:

str.înlocuiți (/ [[nia] / g, "u");


Puteți da chiar o serie de litere, ca aceasta:

str.înlocuiți (/ [[g-l] / g, "u");


Sau, o serie de numere:

str.înlocuiți (/ [0-5] / g, „9”);


Și, dacă doriți să excludeți caracterele furnizate între paranteze pătrate, puteți utiliza caracterul caret, astfel:

str.înlocuiți (/ [^ g-l] / g, "t");


Acest lucru este util atunci când obțineți date de la utilizatori și testați și validați aceste date, în special în e-mail, telefon sau validarea datei.

Concluzie

Acest articol tocmai a zgâriat suprafața expresiei regulate Javascript. Acoperă conceptele doar de la începător la nivel intermediar. Există multe mai multe de învățat despre expresia regulată și puteți folosi această expresie pentru a face o mulțime de lucruri la care poate nici nu v-ați gândit. Pentru a continua să învățați, să lucrați și să obțineți mai multă experiență în Javascript, consultați mai multe articole despre acest subiect la linuxhint.com.

Open Source Ports of Commercial Game Engines
Free, open source and cross-platform game engine recreations can be used to play old as well as some of the fairly recent game titles. This article wi...
Cele mai bune jocuri de linie de comandă pentru Linux
Linia de comandă nu este doar cel mai mare aliat al tău când folosești Linux - poate fi și sursa de divertisment, deoarece poți să o folosești pentru ...
Best Gamepad Mapping Apps for Linux
If you like to play games on Linux with a gamepad instead of a typical keyboard and mouse input system, there are some useful apps for you. Many PC ga...