当前位置: 首页 > 知识库问答 >
问题:

使用jQuery进行数值验证

曾昂然
2023-03-14

为了验证输入字段是否包含数值,我正在使用jQuery的isNumic()方法:

$.isNumeric(value);

这在大多数情况下都可以正常工作,但以下示例失败了:

$.isNumeric("0.");

如果不是数值,则返回true。

有没有更好的方法在不使用任何其他插件的情况下进行此类验证?

谢谢。

共有3个答案

公羊嘉
2023-03-14

如果你想要的是检查类型,可以使用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。.0javascript中有效的数字格式。

聂和宜
2023-03-14

尝试以下代码。

function isNumeric(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

例子:

var matches = val.match(/\d+/g);
if (matches != null) {
    alert('number');
}
卜高超
2023-03-14

您还没有列出所有的用例,但我已经在控制台中浏览了几个用例,包括您的中断用例;

您只需将字符串转换为JavaScript数字:

$.isNumeric(Number("0."))
=> true

它似乎也适用于不是数字的字符串。

$.isNumeric(Number("fasd"))
=> false

修订:

$.isNumeric(Number(0.))
=> true

$.isNumeric(Number(.0))
=> true

此外,如果您的DB不喜欢“0”然后施放物品:

Number(0.)
=> 0

Number(.0)
=> 0

Number(".0")
=> 0

Number("0.")
=> 0

如果这个解决方案不能解决你的问题,请告诉我。干杯!

 类似资料:
  • 我有一个isuue与jquery验证插件。我有一个表单,其中所有字段都是使用Ajax动态加载的。所有字段的名称和ID都是动态设置的。所以我无法将他们的名字输入jQuery。 管理员可以将某些文件验证所需的设置为true或false。现在我的问题是复选框。我把他们的名字放入数组。另外,我正在使用pretty-checkbox自定义类在checkbox上应用样式。For ex:一组chkbox数组名称

  • 问题内容: 我可以通过接收到请求的xml 但不是 没有JavaScript错误,没有跨域策略问题。可能是语法错误,但是我找不到合适的教程。有什么建议吗? 问题答案: 我认为您需要纯格式:

  • 我试图使用regex或JavaScript实现密码验证。不幸的是,我完全是Regex的新手:/ null 谢谢

  • 问题内容: 如果我不想刷新页面,该如何在Codeigniter中进行表单验证?基本上我这样做: 但是,如果我使用ajax发送数据并且页面没有刷新,我该如何进行表单验证? 编辑: 谢谢@ Amra Kojon。很好并且可行,但是新的问题是: 如果我只是在其他部分说回声“某事”,它可以工作,并且如果验证还可以,则回声你好,但是如果我在数据库中写入主题(值数组中包含数据且不是ajax方式,则插入日期),

  • 问题内容: 使用Mockito,我可以执行以下操作: 但是,如果要取而代之,我该怎么写呢?无法弄清楚如何正确编写。刚收到语法错误… 问题答案: 尝试: 实际上,当我键入IntelliJ时,它会自动建议此修复程序。不幸的是,在这种情况下,您不能使用静态导入。

  • 问题内容: 我正在使用php来验证google REcaptcha ..就后端验证而言,如果验证码未提交并且完成的用户存储在数据库中,但是当我将其与jquery连接时出现主要问题,则会给出错误提示。 ..问题是,即使验证码在后端经过验证,每次也总是发出错误“您缺少的验证码”,请帮帮我,如果有错,请原谅我.. !! 这里gose .php 文件 这是引导中的gose .html 文件 这里是主要的