當給 input 設置類型為 number 時,比如,我想限制,只能輸入 0-9 的正整數,正則表達式如下:
/^[0-9]?$/ // 匹配 0-9 的整數且只匹配 0 次或 1 次
用正則測試,小數點是無法通過的,且,因為 設置了類型為 number,也無法輸入字母,
但實際上,1. 類似這樣的不合規則的數字是可以通過驗證的,且,可以鍵入字母 e,因為 e 在不同范圍也有不同的意義,我們默認認為e也代表一個數字。
解決辦法如下:
<input type='number' onkeypress='return( /[\d]/.test(String.fromCharCode(event.keyCode) ) )' />
這樣,就不能輸入 e 或者 小數點了
