Задать вопрос
volkov_p_v
@volkov_p_v
FrontEnd разработчик

Какая должна быть регулярка для проверки чисел в строке?

Нужна регулярка для проверки чисел в строке. Если вся строка состоит из чисел, то возвращаем true, если нет, то false.
Нужна именно регулярка, т.к. числа большой длины. Например '1851654887463546878863513667454534354109'.
  • Вопрос задан
  • 87 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const isPositiveInteger = RegExp.prototype.test.bind(/^\d+$/);

// или

const isPositiveInteger = str =>
  !(!str || str.replace(/\d/g, ''));

// или

const isPositiveInteger = str =>
  Boolean(str) && !str.match(/\D/);

Нужна именно регулярка, т.к. числа большой длины.

Нет, не "т.к.". Т.к. строку можно проверить и без регулярных выражений:

const isPositiveInteger = str =>
  str !== '' && [...str].every(n => Number.isInteger(+n));

// или

function isPositiveInteger(str) {
  for (const n of str) {
    if (!'0123456789'.includes(n)) {
      return false;
    }
  }

  return str.length > 0;
}

// или

function isPositiveInteger(str) {
  let result = !!str;

  for (let i = 0; i < str.length && result; i++) {
    const n = str.charCodeAt(i);
    result = 47 < n && n < 58;
  }

  return result;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы