Замена всех запятых в строке JavaScript: метод replace()

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для удаления всех запятых из строки воспользуйтесь методом .replace(/,/g, ""). Флаг /g в регулярном выражении обеспечивает глобальное удаление указанных знаков пунктуации.

JS
Скопировать код
let str = "яблоко, банан, вишня";
str = str.replace(/,/g, "");
// Результирующая строка: "яблоко банан вишня"
Кинга Идем в IT: пошаговый план для смены профессии

Откройте для себя все преимущества replaceAll

В современном JavaScript присутствует полезный метод String.prototype.replaceAll(), который удаляет все вхождения заданной подстроки, не требуя использования регулярных выражений.

JS
Скопировать код
let str = "яблоко, банан, вишня";
str = str.replaceAll(",", "");
// Результат применения replaceAll: "яблоко банан вишня"

Обход особенностей символов регулярных выражений

Такие символы, как ., * или + в регулярных выражениях, могут создавать сложности при выполнении замены, если они не экранированы должным образом. В этом случае пригодится функция экранирования:

JS
Скопировать код
function escapeRegex(string) {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}
let str = "яблоко, банан, вишня, и ещё.";
str = str.replace(new RegExp(escapeRegex(","), 'g'), "");
// После применения экранирования: "яблоко банан вишня и ещё."

Рабочая связка функций split и join

Если возникают проблемы совместимости replace или replaceAll, эффективным решением станет сочетание split() и join().

JS
Скопировать код
let str = "яблоко, банан, вишня";
str = str.split(",").join("");
// Связка split и join справляется с задачей безупречно: "яблоко банан вишня"

Метод split преобразует строку в массив, метод join – обратно объединяет его в строку, по сути, выполняя операцию сборки мозаики.

Гибкость конструктора RegExp

Создавая объект регулярного выражения через RegExp, вы делаете свой код переиспользуемым и более организованным:

JS
Скопировать код
const commaRegex = new RegExp(",", "g");
let str = "яблоко, банан, вишня";
str = str.replace(commaRegex, "");
// Результат при использовании объекта RegExp: "яблоко банан вишня"

Оглядываемся назад

Метод replaceAll() является относительно новым и на данный момент не поддерживается во всех браузерах. В данной ситуации полезными станут полифиллы:

JS
Скопировать код
if (!String.prototype.replaceAll) {
  String.prototype.replaceAll = function(str, newStr) {
    if (typeof str === 'string') {
      return this.split(str).join(newStr);
    }
    return this.replace(new RegExp(str, 'g'), newStr);
  };
}
// С применением полифилла старые браузеры тоже справятся с удалением всех запятых.

Визуализация

Представьте себе процесс удаления запятых из строки как рабочий конвейер на фабрике:

Исходная строка: "🍎,🥕,🍌,🍇"

Следуя логике Супер Удалителя Запятых ™️:

Итоговая строка: "🍎🥕🍌🍇"

Превратитесь в этот конвейер, убирающий разделители и соединяющий продукты без зазоров!

Полезные материалы

  1. String.prototype.replace() – JavaScript | MDN — подробная информация о методе replace().
  2. How do I replace all occurrences of a string in JavaScript? – Stack Overflow — подходящие обсуждения на Stack Overflow.
  3. RegExp.prototype.global – JavaScript | MDN — узнайте больше о глобальном флаге 'g'.
  4. ECMAScript 2015 Language Specification – ECMA-262 6th Edition — документация ES6.
  5. Строки – JavaScript.info — всё, что знает про строки JavaScript.
  6. Магия шаблонных строк в ES6 | Блог для разработчиков от Chrome — для любителей красивого кода.