Иногда из строки нужно вытащить только числа — без пробелов, букв и символов.
Такое бывает при обработке номеров телефонов, 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, '')
. Это простой и мощный способ очистить данные от всего лишнего. Идеально подходит для телефонов, кодов, чисел и любой числовой информации в тексте.