jquery中的正数验证

时间:2009-07-07 04:33:14

标签: jquery validation

我使用了一个表达式来验证一个正数,如下所示:

^\d*\.{0,1}\d+$

当我给它输入-23时,它会将输入标记为负数,但是当我给它输入+23时,它会将其标记为无效数字!

问题是什么?

任何人都可以给出解决方案,+ +它会返回(正面)吗?

7 个答案:

答案 0 :(得分:35)

您是否考虑过使用正则表达式旁边的任何内容?

如果您使用的是jQuery Validation Plugin,则可以使用Validator/addMethod功能创建自定义验证方法:

$.validator.addMethod('positiveNumber',
    function (value) { 
        return Number(value) > 0;
    }, 'Enter a positive number.');

修改:由于您只想要正则表达式,请尝试以下方法:

^\+?[0-9]*\.?[0-9]+$

说明:

  • 字符串的开头(^
  • 可选+号(\+?
  • 数字整数部分([0-9]*
  • 可选点(\.?
  • 可选浮点部分([0-9]+
  • 字符串结尾($

答案 1 :(得分:18)

或者只使用:min: 0.01
例如换钱

答案 2 :(得分:2)

最简单的方法是

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

ref:digits方法| jQuery验证插件 - > https://jqueryvalidation.org/digits-method/

答案 3 :(得分:1)

由于我正在寻找类似的东西,这将测试带有可选前导加号(+)的正值非零值。

^\+?[1-9][0-9]*$

这与小数位不匹配,也不匹配前导零。

答案 4 :(得分:0)

^\+?\d*.{0,1}\d+$

让你能够在数字前加上“+”。

答案 5 :(得分:0)

如果您坚持使用正则表达式,请确保您还使用指数捕获数字,并且您允许使用表格.42的数字,这与0.42相同。

^ +?\ d *。?\ d +([EE] +?\ d +)?$

应该诀窍。

答案 6 :(得分:0)

好的,试试这个;

\+?\d*\.?\d+\b