Nahradit výskyty řetězce v JavaScriptu

Existuje několik způsobů, jak nahradit výskyt podřetězce v JavaScriptu.

V tomto článku se dozvíte, jak nahradit výskyt řetězce vestavěným replace a replaceAll metody poskytované String typu a jak je používat.

Umožňují vám nahradit výskyty podřetězce v řetězci a vrátit novou verzi řetězce.

Všimněte si, že obě metody nezmění původní řetězec, ale vrátí nový řetězec se zadanými podřetězci nahrazenými novou hodnotou. Podívejme se jak.

Pomocí String.replace

replace metoda přijímá dva argumenty:

  • pattern — Řetězec, který se má hledat, může to být řetězec nebo vzor regulárního výrazu.
  • replacement — Text, který má nahradit pattern s.

A nahradí podřetězec v řetězci novým a vrátí nový řetězec.

Syntax:

const newString = oldString.replace(pattern, replacement);

Podívejme se na příklad:

const quote = 'Voldamot is the greatest Wizard. Voldemort will rule the world!';

const newQuote = quote.replace('Voldamot','Harry Potter')
//outputs: Harry Potter is the greatest Wizard. Voldamot will rule the world!

Zde pouze první výskyt podřetězce Voldamot byl nahrazen novým podřetězcem Harry Potter .

Chcete-li použít replace metoda k nahrazení všech výskytů podřetězce v řetězci novým, musíte použít regulární výraz.

Použití regulárních výrazů

const newString = oldString.replace(regex, replacement);

Zde replace metoda přijímá regulární výraz jako searchValue . pak je nahradí newSubstr a vrátí nový řetězec.

const quote = 'Voldamot is the greatest Wizard. Voldemort will rule the world!';

const newQuote = quote.replace(/Voldamot/g,'Harry Potter')
//outputs: Harry Potter is the greatest Wizard. Harry Potter will rule the world!

Předáním globálního příznaku (g) vzoru regulárního výrazu sděluje replace metoda k vyhledání všech výskytů Voldamot v řetězci a nahraďte je Harry Potter .

Pomocí String.replaceAll

Pokus o nahrazení všech výskytů podřetězce znakem replace metoda může být docela řešením. String type poskytuje metodu, která je k dosažení tohoto cíle přímočařejší, replaceAll .

const newString = oldString.replaceAll(pattern, replacement);

Představeno v ES2021, replaceAll metoda je pokračováním String.replace. replaceAll metoda vrací nový řetězec, ve kterém jsou všechny výskyty pattern jsou nahrazeny replacement přešel na něj.

Příklad:

const str = "David is a self-taught developer. David will rule the world!";

let newStr = str.replaceAll("David","Victor")
//output: Victor is a self-taught developer. Victor will rule the world!.

Zde nejsou potřeba regulární výrazy, takže proces je bezproblémový.

Sbalení

A to je vše. String type poskytuje dvě metody, jak nahradit výskyty řetězce:

  • replace() :pouze nahradí první výskyt podřetězce nahrazením, přijímá také regulární výrazy a používá g flag nahradí všechny výskyty podřetězce novým.
  • replaceAll() :nahradí všechny výskyty podřetězce, metoda je přímočařejší.

A můžete jít! děkujeme za přečtení a přejeme příjemné kódování!.