簡體   English   中英

驗證javascript十進制數

[英]Validating javascript decimal numbers

我正在使用以下正則表達式來驗證我的javascript文件中的數字:

var valid = (val.match(/^\d+$/));

它適用於100,200等整數,但是對於像1.44,4.11等這樣的東西,它返回false。 如何更改它,以便接受帶小數的數字?

var valid = (val.match(/^\d+(?:\.\d+)?$/));

火柴:

 1  : yes
 1.2: yes
-1.2: no
+1.2: no
  .2: no
 1. : no

var valid = (val.match(/^-?\d+(?:\.\d+)?$/));

火柴:

 1  : yes
 1.2: yes
-1.2: yes
+1.2: no
  .2: no
 1. : no

 var valid = (val.match(/^[-+]?\d+(?:\.\d+)?$/));

火柴:

 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: no
 1. : no

var valid = (val.match(/^[-+]?(?:\d*\.?\d+$/));

火柴:

 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: yes
 1. : no

var valid = (val.match(/^[-+]?(?:\d+\.?\d*|\.\d+)$/));

火柴:

 1  : yes
 1.2: yes
-1.2: yes
+1.2: yes
  .2: yes
 1. : yes

嘗試這個:

^[-+]?\d+(\.\d+)?$

isNaN對我來說似乎是一個更好的解決方案。

> isNaN('1')
false
> isNaN('1a')
true
> isNaN('1.')
false
> isNaN('1.00')
false
> isNaN('1.03')
false
> isNaN('1.03a')
true
> isNaN('1.03.0')
true

!isNaN(text)&& parseFloat(text)== text

如果要接受小數(包括<1)和整數,使用可選的+或 - 符號,可以使用valid = Number(val)。

或正則表達式:

valid=/^[+\-]?(\.\d+|\d+(\.\d+)?)$/.test(val);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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