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

$.isNumeric(value);

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

$.isNumeric("0.");

非数字值时返回true。

没有使用任何其他插件,是否有更好的验证方法?

谢谢。

#1楼 票数:1 已采纳

您还没有列出所有用例,但是我在控制台中遇到了几个问题,包括您的破案。

您可以简单地将字符串转换为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

让我知道此解决方案是否不能解决您的问题。 干杯!

#2楼 票数:0

尝试下面的代码。

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

例:

var matches = val.match(/\d+/g);
if (matches != null) {
    alert('number');
}

#3楼 票数:0

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

#4楼 票数:0

以下是我的解决方案:

!$.isNumeric(value) || value.substring(value.length - 1) == "." || value.substring(0, 1) == "."

如果结果为false-该值不是数字,包括5和.5,这是JavaScript中的有效数字值。

感谢大家的投入。

  ask by cycero translate from so

未解决问题?本站智能推荐:

1回复

使用.submitjquery验证数值

我想在下面尝试首先验证用户是否输入了一个值,其次验证该数值是否与通过php生成的1-8中的随机数相匹配。 HTML / PHP JS 我根本无法缝隙去验证它。
3回复

jquery中用于输入的简单数值验证

有人可以帮助我进行简单的jQuery数字验证吗?
3回复

粘贴后jQuery验证数字

我知道如何验证一个字段的数值,但是如果无效字符已粘贴到该字段中,您如何验证该字段。 通常我们有一个数字字段,然后是一个动作按钮,当单击动作按钮时,数字字段可能不会触发模糊事件。 在这种情况下,您如何强制(重新)验证? 你是在操作按钮的点击事件中再做一次,还是有更优雅的解决方案?
1回复

与jquery验证器比较2个字段的错误?

我遇到了一件奇怪的事... 我有一个用jQuery Validator验证过的表单。 我必须比较两个字段(仅数字),一个必须大于另一个。 这是我的工作: 在我使用大于10的数字之前,它工作正常。例如,如果我输入9和4,没问题,如果我输入4和9,则显示错误消息“一个必须大于2”。
2回复

jQuery仅按字母顺序使用数字

我在使用JQuery验证时遇到了一些困难。 我需要使用数字按字母顺序进行输入验证,但是如果我仅输入数字值,则不应进行输入验证。 例如: lorem ipsum 123应该有效, lorem ipsum应该有效, 123应该无效。 我使用此代码,但无法正常工作。
1回复

如何使用jQuery在HTML输入框中只允许数字空格和分数(11/2)格式?

我正在创建一个网页,其中有一个输入文本,我只想允许数字空格和分数,例如 (1 1/2, 2 1/4, 4 1/2...) 通常 1 1/2 我们称之为 ONE AND HALF。 我如何使用 jQuery 做到这一点这是我在JSFiddle 中的代码,但它没有按预期工作。
68回复

如何使用jQuery在HTML输入框中只允许数字(0-9)?

我正在创建一个网页,其中有一个输入文本字段,我只想在其中允许数字字符,例如 (0,1,2,3,4,5...9) 0-9。 我如何使用 jQuery 做到这一点?
2回复

jQuery.numeric和粘贴内容

.nu​​meric函数(http://www.texotela.co.uk/code/jquery/numeric/)效果很好,但是当您将内容粘贴到txtOrderName字段并退出该字段时,它不会验证。 有没有人知道任何允许在粘贴内容后再次运行.numeric函数的修改? 例如,如果