在Javascript中,我试图验证用户输入只是有效的小数
我有以下JSFiddle,它显示了我目前拥有的正则表达式
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
但它们都不适用于此用例
我做错了什么?
答案 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