ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70%Забронировать скидку

Удаление всех пробелов из текста в JS: проблемы с REPLACE()

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

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

Чтобы удалить все пробельные символы из строки в JavaScript, можно воспользоваться конструкцией .replace(/\s+/g, ''):

JS
Скопировать код
let spaceKiller = 'Пробелы должны умереть!'.replace(/\s+/g, '');
console.log(spaceKiller); // 'Пробелыдолжныумереть!'

После применения данной конструкции в строке не останется ни пробелов, ни символов табуляции, ни символов перевода строки — только непрерывная последовательность символов.

Пройдите тест и узнайте подходит ли вам сфера IT
Пройти тест

Расшифровка метода

Проанализируем действия, которые выполняются для удаления пробелов из строки. Пробелы, и другие пробельные символы как табуляция и перевод строки, оказываются в поле зрения метода .replace().

Современный JavaScript

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

Элементы регулярного выражения

Рассмотрим каждый элемент в регулярном выражении /\s+/g:

  • \s соответствует любому пробельному символу: пробел, табуляция или перевод строки.
  • + указывает на последовательность одинаковых символов.
  • g — это глобальный режим, обозначающий, что поиск и замена будет проводиться по всем вхождениям символа.

Обратная совместимость

Учтите, что поддержка replaceAll() браузерами ограничена. Пользуйтесь .replace() для обеспечения обратной совместимости, так как он надежно функционирует во всех веб-браузерах.

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

Удаление пробельных символов можно примерно представить как избавление строки от ненужного содержимого:

Markdown
Скопировать код
Исходная строка: [🔤, 🔤, 📦, 🔤, 📦📦, 🔤, 🔤, 🔤]

Применение replace трансформирует её:

diff
Скопировать код
- До: [🔤, 🔤, 📦, 🔤, 📦📦, 🔤, 🔤, 🔤]
+ После:  [🔤, 🔤, 🔤, 🔤, 🔤, 🔤, 🔤]

Применение функции .replace() в JavaScript:

JS
Скопировать код
let compressedCargo = text.replace(/\s+/g, '');

И в результате получаем: непрерывную последовательность символов. 🚂💨

Обработка исключительных ситуаций

С некоторыми особенностями вам придется столкнуться при обработке строк. Готовьтесь ко всему!

Пустые строки

Пустая строка — это не проблема. Метод .replace() не приведет к ошибке.

Очистка начала и конца строки

Если вам требуется очистить только начало и конец строки, используйте .trim().

JS
Скопировать код
let frontierSweep = ' Свидетель пробела '.trim();
console.log(frontierSweep); // 'Свидетель пробела'

Особенности replace()

Если вашей целью является не регулярное выражение, а конкретный символ или последовательность символов, то .replace() заменит только первое вхождение. Итак, не ожидайте, что все подходящие символы будут заменены!

JS
Скопировать код
let misguidedHit = 'Секрет успеха'.replace(' ', '');
console.log(misguidedHit); // 'Секретуспеха'

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

  1. String.prototype.replace() – JavaScript | MDN — Инструкция MDN по применению метода replace().
  2. Remove ALL white spaces from text – Stack Overflow — Советы от опытных разработчиков на Stack Overflow.
  3. regex101: build, test, and debug regex — Онлайн-ресурс для тренировки в работе с регулярными выражениями.
  4. Strings – JavaScript.info — Подробное руководство по работе со строками в JavaScript.
  5. Regular expressions – JavaScript | MDN — Глубокое погружение в работу с регулярными выражениями в JavaScript.
  6. How To Work with Strings in JavaScript | DigitalOcean — Руководство об управлении строками и удалении из них пробельных символов.