数字验证正则表达式
Number validate regex
在jquery.validate.js中,这个正则表达式用于验证一个数字。问题是它在0.33上失败了,在0.33上通过了。我需要让它通过,或者不通过,前导0。
^-?(?:'d+|'d{1,3}(?:,'d{3})+)(?:'.'d+)?$
试试这个
^-?(?:'d+|'d{1,3}(?:,'d{3})+)?(?:'.'d+)?$
额外的问号(点出它!)将使小数点前的所有部分都可选。
正向前看,如(?=[.])
,可用于确保字符串以点开始(.
)或遵循先前定义的模式。
^-?(?:(?=[.])|'d+|'d{1,3}(?:,'d{3})+)(?:'.'d+)?$
有更简单的方法来判断一个字符串是否指向一个数字——
function isNumber(str){
return parseFloat(str)=== Number(str);
}
这可能有点晚了,但我有一个更好的答案。试试这个:
^-?(('d+)|([1-9]'d{0,2}(,'d{3})+)|(?='.))('.'d+)?$
上面的refp和solendil的解将接受像0,123,456或000,123这样的数字为有效。这些显然不是有效的数字。
此解决方案确保第一个逗号之前的部分以非零数字开头。它还处理refp指出的空字符串问题。
相关文章:
- Javascript中的正则表达式验证
- javascript正则表达式验证未按预期工作
- 使用 JavaScript 正则表达式验证每个列表项一个字母的逗号列表
- 在提交时检查正则表达式验证,如果为空,则聚焦所有输入字段
- 如何使用正则表达式验证单字母域名
- Javascript正则表达式验证
- 使用javascript进行正则表达式验证
- 使用正则表达式验证特定范围
- 如何使用正则表达式验证 JavaScript 中的自定义 URL
- 使用正则表达式验证电子邮件地址
- 使用正则表达式验证网址
- 使用正则表达式验证加拿大邮政编码
- javascript 正则表达式验证列表以逗号分隔
- 使用原型进行正则表达式验证
- HTML 正则表达式验证在十进制输入上仅限制一个句点
- 用于 excel 文件上传 jQuery 的正则表达式验证代码
- 两个不同 URL 的正则表达式验证表单
- 正则表达式验证 - 域电子邮件地址
- 正则表达式验证
- 时间格式的 JavaScript 正则表达式验证问题