ユーザーが番号を入力する簡単なtextbox
があります。
jQueryには、ユーザーが数字以外を入力した場合にアラートボックスを表示できるisDigit
関数がありますか?
フィールドには小数点も含めることができます。
正規表現を使用することをお勧めします。
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');
...
}
正規表現を忘れてください。 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
}
変数が整数かどうかを確認する簡単な方法があります。 $ .isNumeric()関数を使用できます。例えば.
$.isNumeric( 10 ); // true
これはtrueを返しますが、10の代わりに文字列を入力すると、falseになります。
これがお役に立てば幸いです。
var yourfield = $('fieldname').val();
if($.isNumeric(yourfield)) {
console.log('IM A NUMBER');
} else {
console.log('not a number');
}
JQUERY DOCS:
次のスクリプトを使用して、値が有効な整数であるかどうかを確認できます。
function myFunction() {
var a = parseInt("10000000");
if (!isNaN(a) && a <= 2147483647 && a >= -2147483647){
alert("is integer");
} else {
alert("not integer");
}
}
JQueryの validation プラグインを使用すると、フォームがformと呼ばれ、検証する値が呼び出されると仮定して、このようなことができますnrInput
$("form").validate({
errorElement: "div",
errorClass: "error-highlight",
onblur: true,
onsubmit: true,
focusInvalid: true,
rules:{
'nrInput': {
number: true,
required: true
}
});
これは小数値も処理します。
値の検証はjQueryの責任ではありません。これには純粋なJavaScriptを使用できます。私の頭に浮かぶ2つの方法は次のとおりです。
/^\d+$/.match(value)
Number(value) == value
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
$(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;
}
});
});
jQueryはJavaScript関数のセットですよね?したがって、JavaScriptの正規表現サポートを使用して文字列を検証できます。必要に応じて、これをjQueryコールバックに入れることもできます。これらは、匿名で宣言された関数本体を使用するだけで、関数はまだJavaScriptであるためです。