簡體   English   中英

使用jQuery進行數值驗證

[英]Numeric validation with jQuery

為了驗證輸入字段包含數字值,我正在使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM