Řetězec JavaScript nahraditVše

Nahrazení podřetězce textu ve větším řetězci bylo v JavaScriptu vždy zavádějící. Nahradit všechny výskyty řetězce v JavaScriptu jsem napsal před lety a stále je to jeden z mých nejčtenějších článků.

Zmatek spočívá v tom, že replace nahrazuje pouze první výskyt podřetězce, nikoli všechny výskytů. Například:

'yayayayayaya'.replace('ya', 'na');
// nayayayayaya

Chcete-li nahradit všechny výskyty podřetězce, musíte použít regulární výraz:

'yayayayayaya'.replace(/ya/g, 'na');
// nananananana

Používání regulárních výrazů je jistě mocné, ale buďme upřímní – často prostě chceme nahradit všechny instance jednoduchého podřetězce, který by neměl vyžadovat regulární výraz.

Naštěstí nám tento rok jazyk JavaScript poskytl String.prototype.replaceAll , metoda pro nahrazení bez použití regulárních výrazů:

'yayayayayaya'.replaceAll('ya', 'na');
// nananananana

Někdy API existuje v matoucím formátu a normalizační orgány prostě potřebují situaci zlepšit. Jsem rád, že tak učinili s replaceAll !