我使用正則表達式之後在我的JavaScript文件來驗證數字:驗證JavaScript的十進制數
var valid = (val.match(/^\d+$/));
它工作正常的整數像100,200等,但對於像1.44,4.11,它會返回false。我怎樣才能改變它,使小數的數字也被接受?
我使用正則表達式之後在我的JavaScript文件來驗證數字:驗證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+)?$
如果你想接受小數(包括< 1)和整數,可選+或 - 號,可以使用有效=號(VAL)。
還是一個正則表達式:
valid=/^[+\-]?(\.\d+|\d+(\.\d+)?)$/.test(val);
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
也正面/負面地完美地工作 – seanmonstar 2010-03-22 20:40:41
!isNaN(文本)& & parseFloat(文本)==文本
「4」。在技術上是一個有效的十進制數,但是這個正則表達式不會匹配。您應該使組中的\ d +數字爲可選。 – 2010-03-22 20:27:12