使用 jQuery 进行数字验证
Numeric validation with jQuery
为了验证输入字段是否包含数值,我使用了 jQuery 的 isNumeric() 方法:
$.isNumeric(value);
这对大多数情况都适用,但以下示例失败了:
$.isNumeric("0.");
这 returns 为真,但它不是数值。
是否有更好的验证方式而不使用任何其他插件?
谢谢。
试试下面的代码。
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);
}
顺便说一句,0.
和 .0
是 javascript.
中的有效数字格式
您没有列出所有用例,但我已经 运行 通过控制台中的几个,包括您的破坏案例;
您可以简单地将字符串转换为 JavaScript 数字:
$.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
如果此解决方案无法解决您的问题,请告诉我。干杯!
以下是我的解决方案:
!$.isNumeric(value) || value.substring(value.length - 1) == "." || value.substring(0, 1) == "."
如果此结果为假 - 该值不是数字,包括 5. 和 .5,它们是 JavaScript.
中的有效数值
感谢大家的意见。
为了验证输入字段是否包含数值,我使用了 jQuery 的 isNumeric() 方法:
$.isNumeric(value);
这对大多数情况都适用,但以下示例失败了:
$.isNumeric("0.");
这 returns 为真,但它不是数值。
是否有更好的验证方式而不使用任何其他插件?
谢谢。
试试下面的代码。
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);
}
顺便说一句,0.
和 .0
是 javascript.
您没有列出所有用例,但我已经 运行 通过控制台中的几个,包括您的破坏案例;
您可以简单地将字符串转换为 JavaScript 数字:
$.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
如果此解决方案无法解决您的问题,请告诉我。干杯!
以下是我的解决方案:
!$.isNumeric(value) || value.substring(value.length - 1) == "." || value.substring(0, 1) == "."
如果此结果为假 - 该值不是数字,包括 5. 和 .5,它们是 JavaScript.
中的有效数值感谢大家的意见。