我有一個小表單,用戶輸入一定金額的存款。這個數量可以是正數也可以是負數。每次按下某個鍵時,我都會嘗試驗證表格,以防止意外輸入字母或字符。JavaScript onkeyup正則表達式
考慮下面的功能:
var deposit = document.getElementById("deposit");
deposit.onkeyup = function() {
var PATTERN = /\d$/;
if (!deposit.value.match(PATTERN)) {
deposit.value = deposit.value.replace(deposit.value.slice(-1), "");
}
}
,如果你只希望用戶能夠輸入數字這工作得很好,很正常。任何其他角色將被簡單地刪除。我遇到麻煩的時候會想出一個可以即時運行的模式,以匹配正面或負面的貨幣(沒有美元符號)。用戶需要輸入一個可選的負號,至少一個數字,後跟一個小數點,然後再輸入兩個數字。
實施例的存款量:
0.09
100.45
4032.34
-0.90
-54.56
-1353.00
任何幫助提出一個模式,或者甚至更好的方法,將不勝感激。請讓我知道是否需要更多細節。
你替換功能是有缺陷的。當'keyup'事件被觸發時,可能在輸入字段中輸入了多個字符。它也*有可能是用戶不會將脫字符號放在最後,導致你的函數被破壞。 – 2012-01-06 17:35:11