Я хочу проверить, string
содержит ли только цифры. Я использовал это:
var isANumber = isNaN(theValue) === false;
if (isANumber){
..
}
Но понял, что это также позволяет +
и -
. По сути, я хочу убедиться, что он input
содержит ТОЛЬКО цифры и никаких других символов. Так как +100
и -5
оба числа, isNaN()
это не правильный путь. Может быть, мне нужно регулярное выражение? Какие-нибудь советы?
javascript
numbers
digits
patad
источник
источник
\d
это точно эквивалентно[0-9]
.Regular Expressions
работают/^\d*$/
вместо этого , если вы найдете пустую строку, содержащую только цифры .источник
источник
isNumber = () => /^\d+$/.test(this);
вместо этого и используйте какconsole.log(isNumber("123123));
Если вы хотите даже поддерживать значения с плавающей точкой (значения, разделенные точками), вы можете использовать это выражение:
источник
\d+
на\d*?
, оно сможет соответствовать 0 - 9, а также таким числам, как .333var isNumber = /^\d*\.?\d+$/.test(value)
- соответствует «3,5», «.5», «3» - не соответствует «3».Вот еще один интересный, читаемый способ проверить, содержит ли строка только цифры.
Этот метод работает, разбивая строку на массив с помощью оператора распространения , а затем использует
every()
метод для проверки, все ли элементы (символы) в массиве включены в строку цифр'0123456789'
:источник
true
пустую строку''
и пустой массив[]
, массив целых чисел[1, 2, 3]
(если они <10)./^\d+$/
Я думаю, что он более подвержен ошибкам / неправильному использованию, чем основное регулярное выражениеЭто то что ты хочешь
источник
Вот решение без использования регулярных выражений:
где 48 и 57 - коды символов для «0» и «9» соответственно.
источник
Хотя это вернет
false
строки с начальными или конечными нулями.источник
Ну, вы можете использовать следующее регулярное выражение:
источник
если вы хотите включить значения с плавающей точкой, вы можете использовать следующий код
это будет проверять только цифры и цифры, разделенные '.' первый тест будет охватывать значения, такие как 0,1 и 0, но также .1, он не допустит 0. поэтому решение, которое я предлагаю, состоит в том, чтобы перевернуть значение, так что .1 будет 1. тогда то же самое регулярное выражение не допустит этого.
пример :
источник
Если строка содержит только цифры, она вернет ноль
источник