我使用了一个表达式来验证一个正数,如下所示:
^\d*\.{0,1}\d+$
当我给它输入-23时,它会将输入标记为负数,但是当我给它输入+23时,它会将其标记为无效数字!
问题是什么?
任何人都可以给出解决方案,+ +它会返回(正面)吗?
答案 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