Проверка введенного числа - это цифра в jquery
У меня есть простой textbox
, в котором пользователи вводят номер.
Есть ли в jQuery функция isDigit
, которая позволит мне показывать окно предупреждения, если пользователи вводят что-то, отличное от цифр?
Поле также может иметь десятичные точки.
Ответы
Ответ 1
Я бы предложил использовать регулярные выражения:
var intRegex = /^\d+$/;
var floatRegex = /^((\d+(\.\d *)?)|((\d*\.)?\d+))$/;
var str = $('#myTextBox').val();
if(intRegex.test(str) || floatRegex.test(str)) {
alert('I am a number');
...
}
Или с одним регулярным выражением в соответствии с предложением @Platinum Azure:
var numberRegex = /^[+-]?\d+(\.\d+)?([eE][+-]?\d+)?$/;
var str = $('#myTextBox').val();
if(numberRegex.test(str)) {
alert('I am a number');
...
}
Ответ 2
Забудьте регулярные выражения. JavaScript имеет встроенную функцию для этого: isNaN()
:
isNaN(123) // false
isNaN(-1.23) // false
isNaN(5-2) // false
isNaN(0) // false
isNaN("100") // false
isNaN("Hello") // true
isNaN("2005/12/12") // true
Просто назовите его так:
if (isNaN( $("#whatever").val() )) {
// It isn't a number
} else {
// It is a number
}
Ответ 3
существует более простой способ проверки, является ли переменная целой. вы можете использовать функцию $.isNumeric(). например.
$.isNumeric( 10 ); // true
это вернет true, но если вы поместите строку вместо 10, вы получите false.
Надеюсь, это сработает для вас.
Ответ 4
Следующее script может использоваться для проверки того, является ли значение допустимым целое или нет.
function myFunction() {
var a = parseInt("10000000");
if (!isNaN(a) && a <= 2147483647 && a >= -2147483647){
alert("is integer");
} else {
alert("not integer");
}
}
Ответ 5
Валидация ценности не несет ответственности за jQuery. Вы можете использовать для этого чистый JavaScript. Мне приходят два пути:
/^\d+$/.match(value)
Number(value) == value
Ответ 6
С jQuery validation плагин вы можете сделать что-то вроде этого, считая, что форма называется формой, и значение для проверки называется nrInput
$("form").validate({
errorElement: "div",
errorClass: "error-highlight",
onblur: true,
onsubmit: true,
focusInvalid: true,
rules:{
'nrInput': {
number: true,
required: true
}
});
Это также обрабатывает десятичные значения.
Ответ 7
String.prototype.isNumeric = function() {
var s = this.replace(',', '.').replace(/\s+/g, '');
return s == 0 || (s/s);
}
Использование
'9.1'.isNumeric() -> 1
'0xabc'.isNumeric() -> 1
'10,1'.isNumeric() -> 1
'str'.isNumeric() -> NaN
Ответ 8
var yourfield = $('fieldname').val();
if($.isNumeric(yourfield)) {
console.log('IM A NUMBER');
} else {
console.log('not a number');
}
JQUERY DOCS:
https://api.jquery.com/jQuery.isNumeric/
Ответ 9
jQuery - это набор функций JavaScript, не так ли? Таким образом, вы можете использовать поддержку регулярных выражений JavaScript для проверки строки. Вы можете поместить это в обратный вызов jQuery, если хотите, также, поскольку те просто принимают анонимно объявленные тела функций, а функции все еще JavaScript.
Ссылка: http://www.regular-expressions.info/javascript.html
Ответ 10
$(document).ready(function () {
$("#cust_zip").keypress(function (e) {
//var z = document.createUserForm.cust_mobile1.value;
//alert(z);
if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
$("#errmsgzip").html("Digits Only.").show().fadeOut(3000);
return false;
}
});
});