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