问题
I have a form and I am using jQuery validation plugin to validate it. Now I am trying to validate decimal number input.
I have tried the following code, but its not working. Is the problem with the regular expression or the way of writing the custom rule is wrong in my code?
rules: {
paid_amount: {
required:true,
rexp: ^[1-9]\d*(\.\d+)?$
},
}
},
messages: {
paid_amount: {
required: "Enter Paid Amount",
rexp:"Decimal Numbers Only"
},
}
});
回答1:
You can use the number validation method found here
From the docs:
$("#myform").validate({
rules: {
field: {
required: true,
number: true
}
}
});
In your case:
rules: {
paid_amount: {
required:true,
number: true
}
},
messages: {
paid_amount: {
required: "Enter Paid Amount",
number: "Decimal Numbers Only"
}
}
回答2:
I'm not familiar with jquery validator plugin, sorry but your regular expression is valid.
another approach would be
var reg = "/^[1-9]\d*(\.\d+)?$/"; //reg pattern<br/>
if(reg.test("1.23"))//validate
{
//do something <br/>
}
回答3:
jQuery validator also supports decimal validation using range method.
factor:
{
required: true,
range:[0.08,20.09]
},
Read more here and demo here.
回答4:
Use the jQuery isNumeric function: http://api.jquery.com/jQuery.isNumeric/
回答5:
Your problem is with the method 'rexg'. You should use 'pattern'. Example:
paid_amount: {
required:true,
pattern: ^[1-9]\d*(\.\d+)?$
}
来源:https://stackoverflow.com/questions/10790261/validating-decimal-numbers