我想验证一些输入以检查它是否为格式的正货币值:
0.5,0.55,5(注意这一个)5.5,5.55,55等等等等.
我正在使用的代码是:
if ($("#gross").val()>0 && !/^\d+?\.?\d?\d$/.test($("#gross").val())) {
alert($("#gross").val() + " is invalid currency");
}
Run Code Online (Sandbox Code Playgroud)
它适用于除一个数字之外的所有内容,例如5(和5.),但确实有效5.5.
我究竟做错了什么?
你忘了?在最后添加一个$.更好的方法是:
/^\d+?\.?\d{0,2}$/
Run Code Online (Sandbox Code Playgroud)
这将检查该号码最多有两个小数位 - 如果您想检查任何金额,您可以使用以下内容:
/^(?!\.$)(?:(?!0\d)(\d*)\.?(\d[0-9]*))$/
Run Code Online (Sandbox Code Playgroud)
请注意,将字符串显式转换为数字,并缓存值的值是个好主意#gross.
var grossVal = $("#gross").val();
if (+grossVal > 0 && !/^\d+?\.?\d{0,2}$/.test(grossVal)) {
alert(grossVal + " is invalid currency");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |