JavaScripti string. Asenda () näide regExiga

Regulaaravaldised (neid nimetatakse ka RegEx või RegExp) on võimas viis teksti analüüsimiseks. RegExi abil saate stringe sobitada punktides, mis sobivad konkreetsete märkide (näiteks JavaScripti) või mustritega (näiteks NumberStringSymbol - 3a &).

.replaceMeetodit kasutatakse stringe JavaScript asendada osad string tähemärki. Seda kasutatakse sageli nii:

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

Nagu eespool näha, aktsepteerib asendusmeetod kahte argumenti: asendatav string ja see, millega string asendatakse.

Siin tuleb sisse Regex .

Eeltoodu kasutamine .replaceon piiratud: asendatavad tähemärgid on teada - "ava". Mis siis, kui meid huvitab hoopis muster? Võib-olla koos kasutada numbrit, kahte tähte ja sõna "foo" või kolme sümbolit?

Selle saavutamiseks saab .replacekasutada meetodit RegEx. RegExsaab tõhusalt kasutada mustrite loomiseks. Nii et selle kombineerimine .replacetähendab, et me saame asendada mustrid ja mitte ainult täpsed tähemärgid.

Kuidas kasutada RegExkoos .replaceJavaScripti

RegExi kasutamiseks replaceasendatakse esimene argument näiteks regex-süntaksiga /regex/. See süntaks toimib mustrina, kus kõik stringiga sobivad osad asendatakse uue alamstringiga.

Siin on näide:

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

String 3foobar4sobib regexiga /\d.*\d/, nii et see asendatakse.

Mis oleks, kui me tahaksime teha asendusi mitmes kohas?

Regexpakub seda juba g(globaalse) lipuga ja sama saab kasutada ka replace. Nii toimige järgmiselt.

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

Regex vastab stringi osadele, mis on täpselt 3 järjestikust numbrit. 323sobib, 995sobib, 489sobib ja 454sobib. Kuid viimane 5ei sobi mustriga.

Tulemuseks on see, mis JavaScrip5tnäitab, kuidas mustrid on õigesti sobitatud, ja asendab uue alamstringiga (tühi string).

Korpuse lipp - isaab kasutada ka. See tähendab, et saate asendada väiketähti mittetundlikud mustrid. Seda kasutatakse järgmiselt:

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 ühti esimese süntaksiga, kuna RegEx on vaikimisi tõstutundlik. Kuid ilipu kasutamisel, nagu on näha teises süntaksis, on string ootuspärane - asendatud.

Kuidas kasutada jaotist Regulaaravaldised

splitkasutab ka RegEx. Mis tähendab, et saate stringi jagada mitte ainult alamstringide juures, mis sobivad täpsete märkide, vaid ka mustritega.

Siin on kiire ülevaade:

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

String oli splitkohas, 64akuna see alamstring vastab määratud regexiga.

Pange tähele, et globaalne lipp - g- in splitpole erinevalt ilipust ja muudest lippudest oluline. Selle põhjuseks on asjaolu, splitet string jagab regexi sobitamise mitmes punktis.

Pakkimine

RegExmuudab replaceJavaScripti stringide koostamise tõhusamaks, võimsamaks ja lõbusamaks.

Te ei piirdu ainult täpsete märkide, vaid mustrite ja mitme asendusega korraga. Selles artiklis oleme paari näite abil näinud, kuidas nad koos töötavad.

Tervised RegExile?