我使用正则表达式之后在我的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