JavaScript String.Replace () Eksempel med RegEx

Regular Expressions (også kaldet RegEx eller RegExp) er en effektiv måde at analysere tekst på. Med RegEx kan du matche strenge på punkter, der matcher bestemte tegn (for eksempel JavaScript) eller mønstre (for eksempel NumberStringSymbol - 3a &).

Den .replacemetode bruges på strenge i JavaScript til at erstatte dele af streng med tegn. Det bruges ofte som sådan:

const str = 'JavaScript'; const newStr = str.replace("ava", "-"); console.log(newStr); // J-Script 

Som du kan se ovenfor accepterer erstatningsmetoden to argumenter: den streng, der skal udskiftes, og hvad strengen ville blive erstattet med.

Her er hvor Regex kommer ind.

Brugen af .replaceovenstående er begrænset: de tegn, der skal udskiftes, er kendt - "ava". Hvad hvis vi i stedet beskæftiger os med et mønster? Måske et tal, to bogstaver og ordet "foo" eller tre symboler brugt sammen?

Den .replaceanvendte metode med RegExkan opnå dette. RegExkan effektivt bruges til at genskabe mønstre. Så ved at kombinere dette med .replacebetyder, at vi kan erstatte mønstre og ikke kun nøjagtige tegn.

Sådan bruges RegExmed .replacei JavaScript

For at bruge RegEx replaceerstattes f.eks /regex/. Det første argument af med regex-syntaks . Denne syntaks fungerer som et mønster, hvor dele af strengen, der matcher den, vil blive erstattet med den nye understreng.

Her er et eksempel:

// matches a number, some characters and another number const reg = /\d.*\d/ const str = "Java3foobar4Script" const newStr = str.replace(reg, "-"); console.log(newStr); // "Java-Script" 

Strengen 3foobar4matcher regex /\d.*\d/, så den erstattes.

Hvad hvis vi ville udføre udskiftninger flere steder?

Regextilbyder allerede det med g(globalt) flag, og det samme kan bruges med replace. Sådan gør du:

const reg = /\d{3}/g const str = "Java323Scr995ip4894545t"; const newStr = str.replace(reg, ""); console.log(newStr); // JavaScrip5t // 5 didn't pass the test :( 

Regex matcher dele af strengen, der er nøjagtigt 3 på hinanden følgende tal. 323matcher det, 995matcher det, 489matcher det og 454matcher det. Men det sidste 5matcher ikke mønsteret.

Resultatet er, der JavaScrip5tviser, hvordan mønstrene matches korrekt og erstattes med den nye understreng (en tom streng).

Sagens flag - ikan også bruges. Dette betyder, at du kan erstatte store og små bogstaver. Sådan bruges det:

const reg1 = /\dA/ const reg2 = /\dA/i const str = "Jav5ascript" const newStr1 = str.replace(reg1, "--"); const newStr2 = str.replace(reg2, "--"); console.log(newStr1) // Jav5ascript console.log(newStr2) // Jav--script 

..5a..matcher ikke den første syntaks, fordi RegEx er som standard store og små bogstaver. Men med brugen af iflag, som det ses i den anden syntaks, er strengen som forventet - erstattet.

Sådan bruges Split med regulære udtryk

splitbruger også RegEx. Hvilket betyder, at du kan opdele en streng ikke kun på understrenge, der matcher nøjagtige tegn, men også mønstre.

Her er et hurtigt kig:

const regex = /\d{2}a/; const str = "Hello54 How 64aare you"; console.log(str.split(regex)) // ["Hello54 How ", "are you"] 

Strengen var splitpå, 64afordi denne understreng matcher den angivne regex.

Bemærk, at det globale flag - g- in spliter irrelevant, i modsætning til iflag og andre flag. Dette skyldes, splitat strengen deles på de flere punkter, regex matcher.

Afslutter

RegExgør replaceing strenge i JavaScript mere effektive, kraftfulde og sjove.

Du er ikke kun begrænset til nøjagtige tegn, men mønstre og flere udskiftninger på én gang. I denne artikel har vi set, hvordan de arbejder sammen ved hjælp af et par eksempler.

Skål til RegEx?