[英]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.