JavaScript String.Replace () Esimerkki RegEx: llä

Säännölliset lausekkeet (kutsutaan myös RegEx tai RegExp) ovat tehokas tapa analysoida tekstiä. RegEx: n avulla voit sovittaa merkkijonot pisteisiin, jotka vastaavat tiettyjä merkkejä (esimerkiksi JavaScript) tai kuvioita (esimerkiksi NumberStringSymbol - 3a &).

.replaceMenetelmää käytetään narulla JavaScript korvata osiin naru merkkiä. Sitä käytetään usein niin:

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

Kuten yllä voit nähdä, korvausmenetelmä hyväksyy kaksi argumenttia: korvattavan merkkijonon ja mitä merkkijono korvataan.

Tässä on Regex .

.replaceYllä olevan käyttö on rajoitettua: korvattavat merkit tunnetaan - "ava". Entä jos olemme huolissamme kuviosta? Ehkä numero, kaksi kirjainta ja sana "foo" tai kolme symbolia yhdessä?

.replaceKäytetty menetelmä, jossa RegExvoidaan saavuttaa tämän. RegExvoidaan tehokkaasti käyttää kuvioiden luomiseen. Joten yhdistämällä tämä .replacetarkoittaa, että voimme korvata kuviot eikä vain tarkkoja merkkejä.

Kuinka käyttää RegExkanssa .replaceJavaScript

Jos haluat käyttää RegExiä, ensimmäinen argumentti replacekorvataan esimerkiksi regexaksilla /regex/. Tämä syntakse toimii kuviona, jossa kaikki merkkijonon osat, jotka sitä vastaavat, korvataan uudella alimerkillä.

Tässä on esimerkki:

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

Merkkijono 3foobar4vastaa regexiä /\d.*\d/, joten se korvataan.

Entä jos haluaisimme tehdä korvauksia useissa paikoissa?

Regextarjoaa jo g(globaalilla) lipulla, ja samaa voidaan käyttää replace. Näin:

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

Regex vastaa merkkijonon osia, jotka ovat täsmälleen 3 peräkkäistä numeroa. 323vastaa sitä, 995vastaa sitä, 489sopii siihen ja 454sopii siihen. Mutta viimeinen 5ei vastaa mallia.

Tulos on, joka JavaScrip5tosoittaa, kuinka kuviot sovitetaan oikein, ja korvaa uuden alimerkkijonon (tyhjä merkkijono).

Kotelolippu - ivoidaan käyttää myös. Tämä tarkoittaa, että voit korvata pienet ja pienet kirjaimet. Näin sitä käytetään:

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..ei vastaa ensimmäistä syntaksia, koska RegEx on oletusarvoisesti kirjainkoko. Mutta ilippua käytettäessä, kuten toisessa syntaksissa nähdään, merkkijono on odotettua - korvattu.

Kuinka käyttää Splitia säännöllisten lausekkeiden kanssa

splitkäyttää myös RegEx. Tämä tarkoittaa, että voit jakaa merkkijonon paitsi tarkkoja merkkejä vastaavilla alimerkkijonoilla myös kuvioita.

Tässä on nopea katsaus:

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

Merkkijono oli split, 64akoska tämä alimerkkijono vastaa määritettyä regexiä.

Huomaa, että globaalilla lipulla - g- in splitei ole merkitystä, toisin kuin ilipulla ja muilla lipuilla. Tämä johtuu siitä, splitettä merkkijono jaetaan useissa kohdissa, jotka regex vastaa.

Käärimistä

RegExtekee replaceJavaScriptien merkkijonoista tehokkaampia, tehokkaampia ja hauskempia.

Et ole vain rajoitettu tarkkoihin hahmoihin, vaan kuvioihin ja useisiin korvauksiin kerralla. Tässä artikkelissa olemme nähneet, kuinka he työskentelevät yhdessä muutaman esimerkin avulla.

Kippis RegExille?