JavaScript String.Replace () Primjer s RegEx

Regularni izrazi (koji se nazivaju i RegEx ili RegExp) moćan su način analize teksta. Pomoću RegEx-a možete podudarati nizove u točkama koje se podudaraju sa određenim znakovima (na primjer, JavaScript) ili uzorcima (na primjer, NumberStringSymbol - 3a &).

.replaceMetoda se koristi na žice u JavaScriptu zamijeniti dijelove niza s likovima. Često se koristi ovako:

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

Kao što vidite gore, metoda replace prihvaća dva argumenta: niz koji treba zamijeniti i čime bi niz bio zamijenjen.

Ovdje dolazi Regex .

Upotreba .replacegore navedenog je ograničena: znakovi koje treba zamijeniti poznati su - "ava". Što ako smo umjesto toga zabrinuti za obrazac? Možda broj, dva slova i riječ "foo" ili tri simbola koja se koriste zajedno?

.replaceMetoda koristi sa RegExse to postigne. RegExmože se učinkovito koristiti za ponovno stvaranje uzoraka. Dakle, kombinirajući ovo sa .replacesredstvima možemo zamijeniti uzorke, a ne samo točne znakove.

Kako koristiti RegExs .replaceu JavaScript

Da biste koristili RegEx, prvi replaceće se argument , na primjer, zamijeniti sintaksom regularnog izraza /regex/. Ova sintaksa služi kao obrazac gdje će bilo koji dijelovi niza koji joj se podudaraju biti zamijenjeni novom podnizom.

Evo primjera:

// 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" 

Niz 3foobar4odgovara regularnom izrazu /\d.*\d/, pa je zamijenjen.

Što ako bismo htjeli izvršiti zamjene na više mjesta?

Regexveć nudi to s g(globalnom) zastavom, a isto se može koristiti i sa replace. Evo kako:

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

Redovni izraz podudara se s dijelovima niza koji su točno 3 uzastopna broja. 323podudara se, 995podudara se, 489podudara se i 454podudara se. Ali posljednji 5ne odgovara obrascu.

Rezultat je taj koji JavaScrip5tpokazuje kako se uzorci pravilno podudaraju i zamjenjuje novim podnizom (praznim nizom).

Oznaka slučaja - itakođer se može koristiti. To znači da možete zamijeniti uzorke koji ne razlikuju velika i mala slova. Evo kako se koristi:

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..se ne podudara s prvom sintaksom jer je RegEx prema zadanim postavkama osjetljiv na velika i mala slova. No, upotrebom izastave, kao što se vidi u drugoj sintaksi, niz je prema očekivanjima - zamijenjen.

Kako koristiti Split s regularnim izrazima

splittakođer koristi RegEx. Što znači da možete podijeliti niz ne samo na podnizove koji se podudaraju s točnim znakovima, već i uzorcima.

Evo kratkog pregleda:

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

Niz je bio splitna 64ajer se taj podniz podudara s navedenim regularnim izrazom.

Imajte na umu da je globalna zastava - g- splitnebitna, za razliku od izastave i ostalih zastava. To je zato što splitcijepa niz na nekoliko točaka s kojima se regularni izraz podudara.

Završavati

RegExčini replacenizove u JavaScript-u učinkovitijim, moćnijim i zabavnijim.

Ne ograničavate se samo na točne znakove već na uzorke i više zamjena odjednom. U ovom smo članku na nekoliko primjera vidjeli kako oni rade zajedno.

Živjeli RegEx?