读书人

求JS带符号金额应验方法

发布时间: 2012-08-27 21:21:57 作者: rapoo

求JS带符号金额验证方法
//金额验证
function checknumber(obj) {
var re = /^([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/;
var str = obj.value;

if (str != "") {
if (re.test(obj.value) == false) {
obj.value = str;
alert("格式不正确,请输入有效的金额!");
obj.value = "";
obj.focus();
}
}
}
这样写只能验证这种方式的金额,1000.00 例如验证这种中间带逗号的就不行了,1000,0000.00,求高手指点,谢谢!

[解决办法]
在处理之前最好把数字处理一下,不要什么都靠正则
obj.replace(',','');
把逗号用空字符串替换掉。
[解决办法]
这么写:/^-?\d{1,3}((,\d{4})|\d)*(.\d{1,2})?$/
[解决办法]
var re = /^([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/;

(\,[0-9]{3})这个是匹配逗号的关键 你想匹配4位1隔的话 就把{3}改成{4}就行了 如果想3位4位都支持的话就((\,[0-9]{3})|(\,[0-9]{4}))也行.随你怎么搞吧
[解决办法]
晕 你前面是1000....

var re = /^([1-9]{1}[0-9]{0,3}(\,[0-9]{3,4})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/;

你再试试

读书人网 >JavaScript

热点推荐