> Как отфильтровать строку, чтобы оставить только буквы с помощью регулярных выражений в JavaScript (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Яндекс
Стек: JavaScript
> Пример ответа
Для фильтрации строки и оставления только букв с помощью регулярных выражений в JavaScript можно использовать метод replace() с шаблоном, который удаляет все не-буквенные символы. Вот пример:
JAVASCRIPTconst originalString = "Hello, World! 123 @#$";const filteredString = originalString.replace(/[^a-zA-Zа-яА-ЯёЁ]/g, '');console.log(filteredString); // "HelloWorld"
Объяснение:
[^a-zA-Zа-яА-ЯёЁ]- это отрицательный символьный класс, который соответствует любому символу, не являющемуся буквой (латиница, кириллица, включая букву "ё").- Флаг
g(global) обеспечивает замену всех вхождений, а не только первого. - Если нужно оставить только латиницу, используйте
[^a-zA-Z], для кириллицы -[^а-яА-ЯёЁ].
Альтернативный подход с использованием match():
JAVASCRIPTconst onlyLetters = originalString.match(/[a-zA-Zа-яА-ЯёЁ]/g)?.join('') || '';
Этот метод возвращает массив букв и объединяет их в строку, но требует обработки случая, когда букв нет.
> Похожие задачи по frontend
Каковы причины утечек памяти в JavaScript
Куда записывается свойство при добавлении его в прототип объекта в JavaScript
Как обрабатывать дублирующиеся ключи при преобразовании массива объектов в объект в JavaScript
Как реализовать функцию retry для повторного вызова асинхронной функции при ошибке в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью