JQuery验证正则表达式以获得利率

时间:2014-05-12 11:08:49

标签: javascript jquery regex jquery-validate

我希望正则表达式获得兴趣。我想接受以下事情:

例如:

 0
 0.4
 0.44
 4
44
 4.00
44.00
 4.2
 4.22
44.22

最小0和最大99.99

必须接受数字和十进制值,但不得超过99.99。此外,它应该在第一个或第二个数字后取十进制数,在第三个数字后它应显示错误信息。

我正在尝试这个正则表达式,但它对我来说并不完美。

$.validator.addMethod('interest', function(value, element) {
    return this.optional(element) || /\d{1,2}\.?\d{0,4}/.test(value);
}, 'Please specify a valid data');

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:3)

匹配0到99.99之间所有数字的正则表达式将是:

^\d{1,2}(\.\d{1,2})?$

所以你非常接近,但你的正则表达式在。

之后匹配0到4位数

编辑:忘了^$

答案 1 :(得分:3)

如果您只是检查值,为什么要乱用正则表达式:

var input = parseFloat(value)
return !isNaN(input) && input >= 0 && input < 100;

如果你想确保字符串中最多放置2个小数,那么检查会更长一点:

return !isNaN(input) &&
       input >= 0 &&
       input < 100 &&
       !(value.split('.')[1] && value.split('.')[1].length > 2);

答案 2 :(得分:0)

如果你使用正则表达式,你最终会遇到两个问题。尝试:

function validateStuff(input) {
    return ($.isNumeric(input) && input >= 0 && input <= 99.99);   
}


// Testing:
console.log(validateStuff(5));
console.log(validateStuff("Hello"));
console.log(validateStuff(100));
console.log(validateStuff(99.99));

DEMO