validationjavascript十进制数
我正在使用以下正则表达式来validation我的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
如果要接受带有可选+或 – 符号的小数(包括<1)和整数,可以使用valid = Number(val)。
或正则表达式:
valid=/^[+\-]?(\.\d+|\d+(\.\d+)?)$/.test(val);
!isNaN(text)&& parseFloat(text)== text