Проверка строки на содержание только цифр в JavaScript

Пройдите тест, узнайте какой профессии подходите

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

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

Чтобы проверить, состоят ли символы строки только из цифр, вы можете применить регулярное выражение ^\d+$ с методом .test() в JavaScript:

JS
Скопировать код
const isDigitsOnly = /^\d+$/.test('12345'); // верно, строка содержит исключительно цифры

Этот метод гарантирует, что строка не является пустой и содержит только цифровые символы. Любой иной символ приведёт к возвращению значения false.

Кинга Идем в IT: пошаговый план для смены профессии

Разбор регулярного выражения

Регулярное выражение ^\d+$ состоит из следующих компонентов:

  • ^ обозначает начало строки.
  • \d+ стоит за наличие, как минимум, одной цифры (от 0 до 9).
  • $ указывает на конец строки.

Такая комбинация символов обеспечивает, что анализируемая строка полностью составлена из цифр.

Модификации регулярного выражения

В зависимости от специфики вашей задачи исходное регулярное выражение ^\d+$ может подвергнуться модификациям:

  • Для десятичных чисел используйте ^\d+(\.\d+)?$, данное выражение допускает точку.
  • Чтобы учесть числовые значения с запятыми, такие как "1,000" или "100", примените ^\d{1,3}(,\d{3})*$.
  • Если в строке могут быть пробелы в начале или конце, добавьте \s*, например: ^\s*\d+\s*$.

Выбирайте выражение максимально соответствующее условиям вашей специфической задачи.

Функция для повторного использования

Для упрощения повторного использования кода, вы можете обогатить String.prototype:

JS
Скопировать код
String.prototype.isDigitsOnly = function() {
  return /^\d+$/.test(this);
};

'12345'.isDigitsOnly(); // вернёт true – строка состоит только из цифр
'12e45'.isDigitsOnly(); // вернёт false – присутствуют недопустимые символы

Важно умело обойти возможные пересечения с существующими методами, чтобы предотвратить конфликты имен.

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

Возможности проверки строки на наличие исключительно цифровых символов можно изобразить, как ввод правильного кода в электронный замок:

Строка: "12345" Замок: [🔢🔢🔢🔢🔢]

Процесс проверки:

JS
Скопировать код
/^\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-значным расширением.

Регулярные выражения всегда окажут вам помощь в решении задач.

Решение без регулярных выражений

Если регулярные выражения для вас неприемлемы, можно воспользоваться методом массива:

JS
Скопировать код
const isDigitsOnly = (str) => str.split('').every(char => char >= '0' && char <= '9');

Несмотря на то, что это решение может быть менее эффективным, некоторые выбирают его ради читаемости кода.

Тестирование ваших шаблонов

Используйте такие сервисы, как regex101.com, для тестирования ваших регулярных выражений. Проверяйте различные варианты данных для достижения максимальной точности:

Markdown
Скопировать код
12345        ✔️ Отлично, присутствуют только цифры.
123.45       ❌ Недействительно, присутствует точка.
12e45        ❌ Незачёт! Это научная нотация, а не простые цифры.

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

  1. Регулярные выражения в JavaScript (MDN) — глубокое погружение в мир регулярных выражений.
  2. Справочник RegExp в JavaScript — краткий обзор методов и свойств RegExp.
  3. Регулярные выражения (javascript.info) — видение основных концепций и продвинутые примеры использования.
  4. RegExp.prototype.test() (MDN) — подробности о методе test для RegExp.
  5. regex101 — инструмент для проверки и отладки регулярных выражений.
  6. Тренировка регулярных выражений за 20 минут (YouTube) — быстрый курс по основам регулярных выражений.
  7. Спецификация ECMAScript® 2023 — исчерпывающая информация о регулярных выражениях и ECMAScript.