1

在 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上找到的正则表达式,例如 精度为2的小数的简单正则表达式

但它们都不适用于这个用例

我究竟做错了什么?

4

4 回答 4

7

这应该是工作

var regex = /^\d+(\.\d{1,2})?$/i;
于 2013-02-28T11:54:36.577 回答
3

你试过这个吗?

var regex = /^[0-9]+\.[0-9]{0,2}$/i;
于 2013-02-28T11:52:21.947 回答
1

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

console.log(!isNaN('20.13')); // true
console.log(!isNaN('20')); // true
console.log(!isNaN('20kb')); // false
于 2013-02-28T11:53:31.063 回答
0

尝试这个:

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

d 代表数字 d{1,2} 代表 1 位数字。以及至少 2 位数字,例如 0.51

于 2013-02-28T11:53:56.957 回答