2015-04-20 96 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})?比賽一個點「。」加上零到兩位數字或者什麼也沒有(允許十進制)
相關問題