提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
为了验证输入字段包含数字值,我正在使用jQuery的isNumeric()方法:
$.isNumeric(value);
在大多数情况下,这都可以正常工作,但是以下示例失败:
$.isNumeric("0.");
非数字值时返回true。
没有使用任何其他插件,是否有更好的验证方法?
谢谢。
您还没有列出所有用例,但是我在控制台中遇到了几个问题,包括您的破案。
您可以简单地将字符串转换为JavaScript Number:
$.isNumeric(Number("0."))
=> true
它似乎也可以用于非数字的字符串。
$.isNumeric(Number("fasd"))
=> false
修改:
$.isNumeric(Number(0.))
=> true
$.isNumeric(Number(.0))
=> true
另外,如果您的数据库不喜欢“ 0”。 然后放东西:
Number(0.)
=> 0
Number(.0)
=> 0
Number(".0")
=> 0
Number("0.")
=> 0
让我知道此解决方案是否不能解决您的问题。 干杯!
尝试下面的代码。
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
例:
var matches = val.match(/\d+/g);
if (matches != null) {
alert('number');
}
如果要检查类型,则可以使用jQuery.type() :
console.log(jQuery.type( "0." ) === "number");// False
console.log(jQuery.type( 0. ) === "number");// True
为了完整起见,使用这种类型的方法,您可以通过以下方式检查数字:
var isNumber = function(o) {
return typeof o === 'number' && isFinite(o);
}
BTW, 0.
和.0
是javascript中有效的数字格式。
以下是我的解决方案:
!$.isNumeric(value) || value.substring(value.length - 1) == "." || value.substring(0, 1) == "."
如果结果为false-该值不是数字,包括5和.5,这是JavaScript中的有效数字值。
感谢大家的投入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.