使用 JavaScript / jQuery 进行简单的数字验证
Posted
技术标签:
【中文标题】使用 JavaScript / jQuery 进行简单的数字验证【英文标题】:Simple number validation using JavaScript / jQuery 【发布时间】:2011-08-05 12:13:47 【问题描述】:在 javascript / jQuery 中是否有任何简单的方法来检查变量是否为数字(最好没有插件)?我想提醒变量是否为数字。
提前致谢...:)
【问题讨论】:
***.com/questions/995183/… no.. 这不是上述问题的重复。我正在寻找没有插件的验证.. 接受它是否适合你 【参考方案1】:我不推荐使用 isNaN
函数来检测数字,因为 Java Script 类型强制。
例如:
isNaN(""); // returns false (is number), a empty string == 0
isNaN(true); // returns false (is number), boolean true == 1
isNaN(false); // returns false (is number), boolean false == zero
isNaN(new Date); // returns false (is number)
isNaN(null); // returns false (is number), null == 0 !!
您还应该记住,isNaN
对于浮点数将返回 false(是数字)。
isNaN('1e1'); // is number
isNaN('1e-1'); // is number
我建议改用this 函数:
function isNumber(n)
return !isNaN(parseFloat(n)) && isFinite(n);
【讨论】:
那么你想说什么,我要修改@Pranay Rana 的答案吗?? 我只是想说使用 isNaN 函数不是检查字符串是否为 Java Script 中的数字的最“正确”方法。 还有其他简单的方法吗??你能给我做个小提琴吗?? :) 您不喜欢我在答案中建议使用的功能? 我喜欢..你能用小提琴演示一下吗??【参考方案2】:Checking number using isNaN function
var my_string="This is a string";
if(isNaN(my_string))
document.write ("this is not a number ");
elsedocument.write ("this is a number ");
或
检查一个号码是否为非法号码:
<script type="text/javascript">
document.write(isNaN(5-2)+ "<br />");
document.write(isNaN(0)+ "<br />");
document.write(isNaN("Hello")+ "<br />");
document.write(isNaN("2005/12/12")+ "<br />");
</script>
上面代码的输出将是:
false
false
true
true
【讨论】:
你好@Pranay Rana,你能用小提琴演示一下吗??【参考方案3】:可以使用下面的代码。我不会完全依赖 isNaN() 。 isNaN 向我显示了不一致的结果(例如 - isNaN 不会检测空格。)。
//Event of data being keyed in to textbox with class="numericField".
$(".numericField").keyup(function()
// Get the non Numeric char that was enetered
var nonNumericChars = $(this).val().replace(/[0-9]/g, '');
if(nonNumericChars.length > 0)
alert("Non Numeric Data entered");
);
【讨论】:
好点,但是当用户删除输入中的所有字符时会发生什么? nonNumericChars.length 仍将为零,并且不会引发警报。您还在寻找其他与 tat 活动有关的事情吗? 啊,你是对的。我以为我发现你犯了一个错误,但事实证明我错了。我喜欢你的回答。 没关系。最好的部分是我们总是可以通过某种方式来修复所有错误。因此,如果您能找到错误,那就更好了,我会学到更多:)【参考方案4】:function isDigit(num)
if (num.length>1)return false;
var string="1234567890";
if (string.indexOf(num)!=-1)return true;
return false;
你需要遍历字符串并为每个字符调用这个函数
【讨论】:
【参考方案5】:使用标准的 javascript 函数
isNaN('9')// this will return false
isNaN('a')// this will return true
【讨论】:
以上是关于使用 JavaScript / jQuery 进行简单的数字验证的主要内容,如果未能解决你的问题,请参考以下文章
javascript 使用jQuery进行SeedLogix表单控件
你可能不需要 jQuery!使用原生 JavaScript 进行开发
javascript 使用jQuery和CSS进行最小页面转换
如何在 jQuery / javascript 中使用 each() 进行迭代或循环