2012-04-05 58 views
0

我必須允許用戶在文本框中僅允許數字值。它應該刪除任何非數字方法。無論他們如何提供輸入......無論是輸入或複製+粘貼。驗證文本框中的數值

我的代碼

var nCheck = function (field) { 
var re = /^[0-9]*$/; 
       if (!re.test(field.value)) { 

         field.value = field.value.replace(/[^0-9]*$/g,""); 
       } 
}; 

這工作時,你複製粘貼,除了像aaa2。而aaaa或aa工作。問題是當最後一個地方包含數字時失敗。

感謝您的任何幫助。

+1

什麼事件正在使用你的函數作爲回調? 'keydown','keyup'或'change'? – 2012-04-05 13:57:08

+0

keyup事件。 $(選擇器).keyup(函數(){ncheck(this)}) – paul 2012-04-05 14:04:20

回答

2

$表示「字符串結束」。刪除它,它應該工作。

其他提示:

通過+更換*; *包括空字符串

也許應該更好地向用戶發出警告,以防數字字符是一個錯字(類似按下,而不是1 Q)

+0

謝謝@SJuan你是對的。有效 ... – paul 2012-04-05 14:14:35

0

如果您使用jQuery,請查看textola jquery數字插件。

4

只是做

field.value = field.value.replace(/[^0-9]/g,""); 

這將取代一切的不是沒有一個號碼,你甚至不必運行test功能。

0

沒有正則表達式:

field.value = isNaN(field.value) ? '' : field.value;