Как оставить только цифры в строке с помощью JavaScript

Категория:

Иногда из строки нужно вытащить только числа — без пробелов, букв и символов.
Такое бывает при обработке номеров телефонов, ID, цен и других данных. В JavaScript сделать это можно с помощью регулярных выражений. Покажу, как это работает.

Способ 1. Удаление всего, кроме цифр (регулярное выражение)

javascriptКопироватьРедактироватьlet input = "Тел: +7 (999) 123-45-67";
let numbers = input.replace(/\D/g, '');
console.log(numbers); // "79991234567"

Разбор:

  • \D — любое, что не цифра
  • g — глобально по всей строке
  • replace() — удаляет все НЕ цифры

Способ 2. Получение только цифр в массиве

Если нужно массив из цифр:

javascriptКопироватьРедактироватьlet str = "abc123de45";
let digits = str.match(/\d/g); // вернёт массив ['1', '2', '3', '4', '5']
console.log(digits);

Если нужно соединить обратно в строку:

javascriptКопироватьРедактироватьlet result = digits.join('');

Способ 3. Функция для переиспользования

javascriptКопироватьРедактироватьfunction extractDigits(str) {
  return str.replace(/\D/g, '');
}

console.log(extractDigits("ID: A-1029-X")); // "1029"

Можно использовать валидацию полей, очистку номеров, генерацию числовых ID и т.д.

Пример: очистка ввода телефона

htmlКопироватьРедактировать<input type="text" id="phone" placeholder="Введите номер">

<script>
  document.getElementById("phone").addEventListener("input", function () {
    this.value = this.value.replace(/\D/g, '');
  });
</script>

Теперь в поле можно ввести только цифры.

Заключение

Чтобы оставить в строке только цифры, используй replace(/\D/g, ''). Это простой и мощный способ очистить данные от всего лишнего. Идеально подходит для телефонов, кодов, чисел и любой числовой информации в тексте.