Validating Decimal Numbers

心已入冬 提交于 2020-01-01 08:33:15

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!