Проверка строки на содержание только цифр в JavaScript
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Чтобы проверить, состоят ли символы строки только из цифр, вы можете применить регулярное выражение ^\d+$
с методом .test()
в JavaScript:
const isDigitsOnly = /^\d+$/.test('12345'); // верно, строка содержит исключительно цифры
Этот метод гарантирует, что строка не является пустой и содержит только цифровые символы. Любой иной символ приведёт к возвращению значения false
.
Разбор регулярного выражения
Регулярное выражение ^\d+$
состоит из следующих компонентов:
^
обозначает начало строки.\d+
стоит за наличие, как минимум, одной цифры (от 0 до 9).$
указывает на конец строки.
Такая комбинация символов обеспечивает, что анализируемая строка полностью составлена из цифр.
Модификации регулярного выражения
В зависимости от специфики вашей задачи исходное регулярное выражение ^\d+$
может подвергнуться модификациям:
- Для десятичных чисел используйте
^\d+(\.\d+)?$
, данное выражение допускает точку. - Чтобы учесть числовые значения с запятыми, такие как "1,000" или "100", примените
^\d{1,3}(,\d{3})*$
. - Если в строке могут быть пробелы в начале или конце, добавьте
\s*
, например:^\s*\d+\s*$
.
Выбирайте выражение максимально соответствующее условиям вашей специфической задачи.
Функция для повторного использования
Для упрощения повторного использования кода, вы можете обогатить String.prototype
:
String.prototype.isDigitsOnly = function() {
return /^\d+$/.test(this);
};
'12345'.isDigitsOnly(); // вернёт true – строка состоит только из цифр
'12e45'.isDigitsOnly(); // вернёт false – присутствуют недопустимые символы
Важно умело обойти возможные пересечения с существующими методами, чтобы предотвратить конфликты имен.
Визуализация
Возможности проверки строки на наличие исключительно цифровых символов можно изобразить, как ввод правильного кода в электронный замок:
Строка: "12345" Замок: [🔢🔢🔢🔢🔢]
Процесс проверки:
/^\d+$/.test("12345"); // проверка на исключительное наличие цифр
Результат:
При успешной проверке замок открывается: [🔓] При неуспешной проверке замок остаётся закрытым: [🔒]
Только при условии, что в строке находятся исключительно цифры, электронный замок откроется.
Опасности маскировки
Следите за подводными камнями! Вот некоторые ситуации, которые могут подвести:
isNaN()
: этот метод может привести к ошибочномуfalse
для строк типа" "
или"123e-1"
.parseInt()
иparseFloat()
: эти методы преобразуют число из строки, игнорируя недопустимые символы на конце.- Оператор
+
: приведение типов может привести к ошибкам в проверках.
Рекомендую использовать регулярные выражения, так как они обеспечивают точность и предсказуемость результатов.
Регулярное выражение – верный спутник
Используйте регулярные выражения для различных форматов, например:
- Форматы номеров кредитных карт:
^(?:\d{4}-){3}\d{4}$
для проверки номеров в виде "1234-5678-9012-3456". - Форматы почтовых индексов:
^\d{5}(-\d{4})?$
для 5-значных ZIP-кодов с возможным 4-значным расширением.
Регулярные выражения всегда окажут вам помощь в решении задач.
Решение без регулярных выражений
Если регулярные выражения для вас неприемлемы, можно воспользоваться методом массива:
const isDigitsOnly = (str) => str.split('').every(char => char >= '0' && char <= '9');
Несмотря на то, что это решение может быть менее эффективным, некоторые выбирают его ради читаемости кода.
Тестирование ваших шаблонов
Используйте такие сервисы, как regex101.com, для тестирования ваших регулярных выражений. Проверяйте различные варианты данных для достижения максимальной точности:
12345 ✔️ Отлично, присутствуют только цифры.
123.45 ❌ Недействительно, присутствует точка.
12e45 ❌ Незачёт! Это научная нотация, а не простые цифры.
Полезные материалы
- Регулярные выражения в JavaScript (MDN) — глубокое погружение в мир регулярных выражений.
- Справочник RegExp в JavaScript — краткий обзор методов и свойств RegExp.
- Регулярные выражения (javascript.info) — видение основных концепций и продвинутые примеры использования.
- RegExp.prototype.test() (MDN) — подробности о методе test для RegExp.
- regex101 — инструмент для проверки и отладки регулярных выражений.
- Тренировка регулярных выражений за 20 минут (YouTube) — быстрый курс по основам регулярных выражений.
- Спецификация ECMAScript® 2023 — исчерпывающая информация о регулярных выражениях и ECMAScript.