11

我有一个表单,我正在使用 jQuery 验证插件来验证它。现在我正在尝试验证十进制数字输入。

我已经尝试了以下代码,但它不起作用。是正则表达式的问题还是我的代码中编写自定义规则的方式有问题?

 rules: {
      paid_amount: {
              required:true,
                      rexp: ^[1-9]\d*(\.\d+)?$
      },

   }
     },

 messages: {
             paid_amount: {
                      required: "Enter Paid Amount",
              rexp:"Decimal Numbers Only"
    },  

     }
});
4

5 回答 5

17

您可以使用此处找到的号码验证方法

从文档:

$("#myform").validate({
  rules: {
    field: {
      required: true,
      number: true
    }
  }
});

在你的情况下:

rules: {
    paid_amount: {
        required:true,
        number: true
    }
},
messages: {
    paid_amount: {
        required: "Enter Paid Amount",
        number: "Decimal Numbers Only"
    }
}
于 2012-05-28T20:58:25.800 回答
2

我不熟悉 jquery 验证器插件,对不起,但你的正则表达式是有效的。

另一种方法是

var reg = "/^[1-9]\d*(\.\d+)?$/"; //reg pattern<br/>
if(reg.test("1.23"))//validate
{
 //do something <br/>
}
于 2012-05-28T20:58:56.377 回答
2

jQuery 验证器还支持使用范围方法进行十进制验证。

factor:
      {
        required: true,
        range:[0.08,20.09]  
      },

在此处阅读更多内容并在此处进行演示

于 2016-03-07T11:03:48.767 回答
0

使用 jQuery isNumeric 函数:http ://api.jquery.com/jQuery.isNumeric/

于 2012-05-28T20:57:14.093 回答
0

您的问题出在“rexg”方法上。你应该使用“模式”。例子:

paid_amount: {
     required:true,
     pattern: ^[1-9]\d*(\.\d+)?$
}
于 2014-11-24T01:58:43.680 回答