
replaceAll.
Для того чтобы заменить все вхождения подстроки в JS, нужно использовать
String.replace
с глобальным регулярным выражением в первом аргументе: 'aabbcc'.replace(/b/g, '_').
Более того, надо помнить про эксейпинг специальных символов, например, для замены всех символов +
надо использовать выражение 'a+b+c'.replace(/\+/g, '').
Это не очень удобно.Для решения этой проблемы в следующем стандарте ECMAScript запланировано добавление нового метода
String.replaceAll.
С его помощью последний пример может переписан так: 'a+b+c'.replaceAll('+', '').
Для консистентности с replace
первым аргументом можно передавать регулярное выражение, но оно обязательно должно быть глобальным.На данный момент
String.replaceAll
находится на третьем этапе добавления в стандарт. Пока его поддержка есть только в v8 за экспериментальным флагом.#tc39 #js
https://v8.dev/features/string-replaceall