Javascript正则表达式的小数

时间:2013-02-28 11:50:09

标签: javascript regex

在Javascript中,我试图验证用户输入只是有效的小数

我有以下JSFiddle,它显示了我目前拥有的正则表达式

http://jsfiddle.net/FCHwx/

var regex = /^[0-9]+$/i;

var key = '500.00';

if (key.match(regex) != null) {
    alert('legal');
}
else {
    alert('illegal');
}

这适用于整数。我还需要允许十进制数字(即最多2位小数)

我已经尝试过很多可以在stackoverflow上找到的正则表达式 例如 Simple regular expression for a decimal with a precision of 2

但它们都不适用于此用例

我做错了什么?

4 个答案:

答案 0 :(得分:7)

这应该是工作

var regex = /^\d+(\.\d{1,2})?$/i;

答案 1 :(得分:3)

你试过这个吗?

var regex = /^[0-9]+\.[0-9]{0,2}$/i;

答案 2 :(得分:1)

我建议您不要使用REGEX,而是使用简单的!isNaN

console.log(!isNaN('20.13')); // true
console.log(!isNaN('20')); // true
console.log(!isNaN('20kb')); // false

答案 3 :(得分:0)

试试这个:

\d+(\.\d{1,2})?

d代表数字 d {1,2}之前是1位数。和至少2位数字,如0.51