JavaScript virkne. Nomainiet () piemēru ar RegEx

Regulārās izteiksmes (sauktas arī par RegEx vai RegExp) ir spēcīgs teksta analīzes veids. Izmantojot RegEx, jūs varat saskaņot virknes punktos, kas atbilst noteiktām rakstzīmēm (piemēram, JavaScript) vai modeļiem (piemēram, NumberStringSymbol - 3a &).

.replaceMetode tiek izmantota stīgas JavaScript nomainīt daļas virknē ar simboliem. To bieži lieto šādi:

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

Kā redzat iepriekš, aizstāšanas metode pieņem divus argumentus: virkni, kas jāaizstāj, un to, ar ko virkne tiks aizstāta.

Šeit parādās Regex .

Iepriekš minētā izmantošana .replaceir ierobežota: ir zināmas aizstājamās rakstzīmes - "ava". Ko darīt, ja tā vietā mēs rūpējamies par modeli? Varbūt skaitlis, divi burti un vārds "foo" vai trīs simboli, ko lieto kopā?

.replaceMetodi izmanto ar RegExvar sasniegt. RegExvar efektīvi izmantot, lai atjaunotu modeļus. Tātad, apvienojot to ar .replacenozīmē, ka mēs varam aizstāt modeļus, nevis tikai precīzas rakstzīmes.

Kā lietot RegExar .replaceJavaScript

Lai izmantotu RegEx, pirmais arguments replacetiks aizstāts, piemēram, ar regex sintaksi /regex/. Šī sintakse kalpo kā paraugs, kurā visas virknes daļas, kas tai atbilst, tiks aizstātas ar jauno apakšvirsrakstu.

Lūk, piemērs:

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

Virkne 3foobar4atbilst regulārajam izteicienam /\d.*\d/, tāpēc tā tiek aizstāta.

Ko darīt, ja mēs gribētu veikt nomaiņas vairākās vietās?

Regexjau piedāvā, ka ar g(globālo) karodziņu, un to pašu var izmantot ar replace. Lūk, kā:

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

Regex izteiksme atbilst virknes daļām, kas ir tieši 3 skaitļi pēc kārtas. 323pieskaņo to, 995pieskaņo, 489pieskaņo un 454pieskaņo. Bet pēdējais 5neatbilst paraugam.

Rezultāts ir tas, kas JavaScrip5tparāda, kā modeļi tiek pareizi saskaņoti, un aizstāj ar jauno apakšvirsrakstu (tukša virkne).

Lieta karodziņš - ivar arī izmantot. Tas nozīmē, ka jūs varat aizstāt mazo un mazo burtu atšķirības. Lūk, kā to lieto:

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..neatbilst pirmajai sintaksei, jo RegEx pēc noklusējuma ir reģistrjutīgs. Bet, lietojot ikarodziņu, kā redzams otrajā sintaksē, virkne ir kā paredzēts - aizstāta.

Kā lietot Split ar regulārajām izteiksmēm

splitarī izmanto RegEx. Tas nozīmē, ka jūs varat sadalīt virkni ne tikai apakšpozīcijās, kas atbilst precīzām rakstzīmēm, bet arī modeļiem.

Šeit ir īss ieskats:

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

Virkne bija split, 64ajo šī apakšvirsraksts atbilst norādītajam regex.

Ņemiet vērā, ka globālajam karodziņam - g- splitnav nozīmes, atšķirībā no ikaroga un citiem karodziņiem. Tas ir tāpēc, splitka virkne tiek sadalīta vairākos punktos, kuros regex atbilst.

Iesaiņošana

RegExpadara replaceJavaScript virkņu izveidi efektīvāku, jaudīgāku un jautrāku.

Jūs varat aprobežoties ne tikai ar precīzām rakstzīmēm, bet arī ar šabloniem un vairākiem aizstājējiem vienlaikus. Šajā rakstā mēs esam redzējuši, kā viņi strādā kopā, izmantojot dažus piemērus.

Cheers to RegEx?