JavaScript

Javascript Regular Expression

Javascript Regular Expression
Mange programmører kender forestillingen om, at det regulære udtryk er et nyttigt, men alligevel undervurderet koncept. Men de ved ikke så godt, hvordan man bruger regulære udtryk effektivt. Regulære udtryk bruges ikke kun i Javascript, men næsten alle andre programmeringssprog. I denne artikel lærer du om regelmæssige udtryk trin for trin. Det skal være let for programmører på ethvert niveau at forstå begreberne i denne artikel.

EN Almindelig udtryk er et objekt, hvor mønstre gives til at matche med den ønskede streng.

Syntaks

Syntaksen for et regulært udtryk er meget enkel og kan skrives som følger:

/ mønster / flag

EN mønster er en streng, hvor du angiver et mønster, der passer til en anden streng.
Flag er valgfri attributter, der tjener forskellige formål. F.eks. Står flaget "g" for "globalt" blandt mange andre.

Omfanget af regulære udtryk er meget bredt. Vi viser dig de grundlæggende, der er mest nødvendige for programmering, gennem en trinvis forklaring og nogle eksempler fra det virkelige liv.

Der er mange metoder, hvor du muligvis skal bruge regulære udtryk, for eksempel i Javaskripts søgning (), erstat (), match () og split () metoder. Vi starter med en simpel strengesøgning uden at bruge det regulære udtryk, og senere viser vi dig, hvordan du udfører den samme søgning ved hjælp af regulære udtryk.

Eksempler

Vi antager først strengen:

lad str = "Linuxhint er fantastisk. linuxhint fungerer godt og udfører 100%."

Vi har gentaget det samme ord “store”Og“linuxhint”I sætningen. Formålet med denne underlige streng bliver et indlysende om et øjeblik.

I orden! Nu skriver vi simpelthen metoden Javascript-søgestreng for at søge efter udtrykket "arbejde"

str.søgning ("arbejde");


Som du kan se, viser det indekset, hvorfra det givne substring “arbejde” begyndte. Nu vil vi gå videre og prøve at gøre det samme med regex-syntaksen.

Trin 1: Søg og erstat en understreng

Du kan søge efter en matchende streng ved hjælp af et regulært udtryk ved blot at placere understrengen mellem de to skråstreger i udtrykket.

str.søgning (/ arbejde /);


Som du kan se, har det også givet os den samme output.

I orden! Nu vil vi se, hvad vi kan gøre med det regulære udtryk. Lad os prøve at erstatte ordet “store”Med, sig,“fantastisk”Ved hjælp af erstatningsmetoden ().

str.erstatte ("fantastisk", "fantastisk");


Her kan du se problemet: den første forekomst af “store”Er blevet udskiftet, men den anden ikke.

I det første trin lærte du simpelthen, hvordan man søger efter en streng ved hjælp af et regulært udtryk. Nu bevæger vi os mod næste trin og lærer om konceptet med flag.

Trin 2: Flag

I dette trin lærer du mere om konceptet og formålet med flag i regulære udtryk. Vi bruger Javascript's erstatningsmetode til at forklare denne idé.

Hvis du vil erstatte alle forekomster af “store,”Du kan bruge det regulære udtryk med 'g'flag, som er en forkortelse for global.

str.erstat (/ great / g, "awesome");


Perfekt, alle forekomster af "stor" er nu ændret. Men du kan blive udsat for et problem, hvis du prøver at ændre alle forekomster af “linuxhint” til f.eks. “Vores websted” ved hjælp af den samme teknik.

Vi vil forsøge at gøre det først, så vil vi se, hvordan vi kan løse dette problem.

str.erstatte (/ linuxhint / g, "vores hjemmeside");


Selvom vi har forsynet det globale flag med det regulære udtryk, ændres den første begivenhed ikke. Dette er på grund af store og små bogstaver. Så vi bliver også nødt til at give sag-ufølsomhedsflagget 'jeg,' I dette tilfælde. Du kan gøre dette ved blot at tilføje 'jeg'flag sammen med'g'flag.

str.erstatte (/ linuxhint / gi, "vores hjemmeside");


Store. Som du kan se, er alle forekomster af udtrykket “linuxhint”Er blevet ændret til udtrykket“vores hjemmeside,”Uanset sagsfølsomhed.

På samme måde kan du bruge regulære udtryk i Javascript's split () -funktion.

str.split (/ linuxhint / gi);


I orden! Funktionen fungerede fint. Split () -metoden har returneret arrayet af substringer, baseret på "linuxhint" -udtrykket. Men hvis du også vil inkludere separatorerne i substringens array, bliver du nødt til at lege med mønstrene.

Så i dette trin har vi lært om flagene, og hvordan de hjælper os. Der er flere flag tilgængelige. For eksempel er "m" til multiline matching, "s" er for dot all osv. Nu vil vi gå videre til begrebet mønstre og lære at bruge disse emner.

Trin 3: Mønstre

I dette trin lærer du, hvordan du bruger mønstrene og relaterede muligheder.
For at inkludere separatorerne i arrayet af substringen skal du blot tilføje parenteser rundt om mønsteret, som det kan ses på følgende billede:

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


Perfekt! Som du kan se, er separatorerne også inkluderet i arrayet af understrings.

For at opdele basen af ​​to separatorer kan du give flere understreng i et regulært udtryk ved hjælp af ELLER “|” operatør.

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


Okay! Operatøren arbejdede godt, da vi forventer, at den splittes.

Backslash

Nu for at opdele mellem bunden af ​​rummet "" eller prikken ".”Betyder at tilføje specialtegn i det regulære udtryk, tilføje et tilbageslag“ \ ”før eventuelle specialtegn.

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


Okay, indtil videre, så godt. Sig for eksempel, at du vil ændre prikkerne i kommaer i følgende udtryk:

str.erstatte(/\./ g, ",");


Det virkede!

Backslash bruges også til et andet formål. For at søge på et hvilket som helst ord, ciffer eller mellemrum kan du bruge henholdsvis \ w, \ d og \ s. For at erstatte mellemrum med bindestreger bruges f.eks. Følgende udtryk:

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


fantastisk! Du kan virkelig se potentialet i regulære udtryk nu.

Firkantede beslag []

Hvis du vil erstatte flere tegn i en streng, kan du angive dem alle i en enkelt firkantet parentes, og de vil blive erstattet af den givne understreng. For eksempel, hvis du vil erstatte tre bogstaver i en streng, og du ikke ønsker at sætte meget ELLER “|” operatorer i det regulære udtryk, kan du bruge firkantet parentes syntaks, hvor du kan give flere bogstaver, som denne:

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


Du kan endda give en række bogstaver som denne:

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


Eller en række numre:

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


Og hvis du vil ekskludere de angivne tegn i firkantede parenteser, kan du bruge caret-tegnet som dette:

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


Dette er nyttigt, når du henter data fra brugere og tester og validerer disse data, især i validering af e-mail, telefon eller dato.

Konklusion

Denne artikel har lige ridset overfladen af ​​Javascript-regulære udtryk. Det dækker kun begreberne fra nybegynder til mellemniveau. Der er meget mere at lære om det regulære udtryk, og du kan bruge dette udtryk til at gøre mange ting, som du måske ikke engang har tænkt på. For at fortsætte med at lære, arbejde og få mere erfaring i Javascript, se flere artikler om dette emne på linuxhint.com.

Vulkan til Linux-brugere
Med hver nye generation af grafikkort ser vi spiludviklere skubbe grænserne for grafisk troskab og komme et skridt tættere på fotorealisme. Men på tro...
OpenTTD vs Simutrans
Oprettelse af din egen transportsimulering kan være sjovt, afslappende og ekstremt lokkende. Derfor skal du sørge for at prøve så mange spil som mulig...
OpenTTD Tutorial
OpenTTD er et af de mest populære forretningssimuleringsspil derude. I dette spil skal du oprette en vidunderlig transportvirksomhed. Du starter dog i...