首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

求JS带符号金额应验方法

2012-08-27 
求JS带符号金额验证方法//金额验证function checknumber(obj) {var re /^([1-9]{1}[0-9]{0,2}(\,[0-9]{3

求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})?)$/;

你再试试

热点排行