2015-04-20 56 views
4

我有一个验证函数,只允许2个小数位数不超过该数字,但目前它不接受负数。下面是我的代码。如何允许正负数字都只有2位小数地方呢?允许负数十进制数

function twodecimalplace(e) { 
    var val = this.value; 
    var re = /^([0-9]+[\.]?[0-9]?[0-9]?|[0-9]+)$/g; 
    var re1 = /^([0-9]+[\.]?[0-9]?[0-9]?|[0-9]+)/g; 
    if (re.test(val)) { 
     //do something here 

    } else { 
     val = re1.exec(val); 
     if (val) { 
      this.value = val[0]; 
     } else { 
      this.value = ""; 
     } 
    } 
} 
+0

为什么不使用js'toFixed()'方法??? –

+0

如果有更多的小数点后两位,你打算怎么做?抛出错误或者你会跳过它? –

+0

@ A.Wolff同样的事情,我正要建议:) –

回答

0

此正则表达式负数匹配太:

/^-?\d+(\.\d{0,2})?$/ 
  • -?匹配 “ - ” 或无(为正数和负数)
  • \d+一个或多个数字
  • (\.\d{0,2})?比赛一个点“。”加上零到两位数字或者什么也没有(允许十进制)
相关问题