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

Я хочу проверить, если строка содержит только цифры. Я использовал этот:

var isANumber = isNaN(theValue) === false;

if (isANumber){
    ..
}

Но понял, что это также позволяет + и -. В принципе, я хочу убедиться, что "вклада" содержит только цифры и другие символы. Так +100 и -5 оба числа, isNaN () - это не правильный путь. Возможно, регулярное выражение-это то, что мне нужно? Какие-либо советы?

Решение

как насчет

var isnum = /^\d+$/.test(val);
Комментарии (7)
string.match(/^[0-9]+$/) != null;
Комментарии (0)
String.prototype.isNumber = function(){return /^\d+$/.test(this);}
console.log("123123".isNumber()); // outputs true
console.log("+12".isNumber()); // outputs false
Комментарии (2)

Если вы хотите даже поддержку для значений с плавающей точкой (точка запятыми), то вы можете использовать это выражение :

var isNumber = /^\d+\.\d+$/.test(value);
Комментарии (3)

Это то, что вы хотите

function isANumber(str){
  return !/\D/.test(str);
}
Комментарии (0)

Здесь'ы еще один интересный, читабельный способ проверить, если строка содержит только цифры.

Этот метод работает, разделяя строку на массив с помощью [распространение] оператор1, а затем использует каждый() метод, чтобы проверить, все ли элементы (символы) в массиве включены в строке цифр'0123456789':

в

const digits_only = string => [...string].every(c => '0123456789'.includes(c));

console.log(digits_only('123')); // true
console.log(digits_only('+123')); // false
console.log(digits_only('-123')); // false
console.log(digits_only('123.')); // false
console.log(digits_only('.123')); // false
console.log(digits_only('123.0')); // false
console.log(digits_only('0.123')); // false
console.log(digits_only('Hello, world!')); // false

в

Комментарии (2)

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

^\d+$
Комментарии (0)

Вот решение без использования регулярных выражений:

function onlyDigits(s) {
  for (let i = s.length - 1; i >= 0; i--) {
    const d = s.charCodeAt(i);
    if (d < 48 || d > 57) return false
  }
  return true
}

где 48 и 57 лет знак коды на "0" и "9" и, соответственно.

Комментарии (0)
function isNumeric(x) {
    return parseFloat(x).toString() === x.toString();
}

Хотя это будет возвращать значение false на строки начальные или конечные нули.

Комментарии (0)
c="123".match(/\D/) == null #true
c="a12".match(/\D/) == null #false

Если строка содержит только цифры, то он возвращает значение null

Комментарии (0)