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 &).
.replace
Menetelmää 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 .
.replace
Yllä 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ä?
.replace
Käytetty menetelmä, jossa RegEx
voidaan saavuttaa tämän. RegEx
voidaan tehokkaasti käyttää kuvioiden luomiseen. Joten yhdistämällä tämä .replace
tarkoittaa, että voimme korvata kuviot eikä vain tarkkoja merkkejä.
Kuinka käyttää RegEx
kanssa .replace
JavaScript
Jos haluat käyttää RegExiä, ensimmäinen argumentti replace
korvataan 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 3foobar4
vastaa regexiä /\d.*\d/
, joten se korvataan.
Entä jos haluaisimme tehdä korvauksia useissa paikoissa?
Regex
tarjoaa 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. 323
vastaa sitä, 995
vastaa sitä, 489
sopii siihen ja 454
sopii siihen. Mutta viimeinen 5
ei vastaa mallia.
Tulos on, joka JavaScrip5t
osoittaa, kuinka kuviot sovitetaan oikein, ja korvaa uuden alimerkkijonon (tyhjä merkkijono).
Kotelolippu - i
voidaan 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 i
lippua käytettäessä, kuten toisessa syntaksissa nähdään, merkkijono on odotettua - korvattu.
Kuinka käyttää Splitia säännöllisten lausekkeiden kanssa
split
kä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
, 64a
koska tämä alimerkkijono vastaa määritettyä regexiä.
Huomaa, että globaalilla lipulla - g
- in split
ei ole merkitystä, toisin kuin i
lipulla ja muilla lipuilla. Tämä johtuu siitä, split
että merkkijono jaetaan useissa kohdissa, jotka regex vastaa.
Käärimistä
RegEx
tekee replace
JavaScriptien 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?