限制 input 輸入框只能輸入純數字
1、onkeyup = "value=value.replace(/[^\d]/g,'')"
使用 onkeyup 事件,有 bug ,那就是在中文輸入法狀態下,輸入漢字之后直接回車,會直接輸入字母
onchange = "value=value.replace(/[^\d]/g,'')"
使用 onchange 事件,在輸入內容后,只有 input 喪失焦點時才會得到結果,並不能在輸入時就做出響應
3、oninput = "value=value.replace(/[^\d]/g,'')"
使用 oninput 事件,完美的解決了以上兩種問題,測試暫時還沒有出現其它問題。
<input type="text" maxlength="11" oninput = "value=value.replace(/[^\d]/g,'')" placeholder="請輸入您的手機號">
接着再加個maxlength="11" 限制只能輸入位數為11位就OK了;
然后是js驗證的時候
var num = document.getElementById('num'); if(num.value.length != 18){ alert('輸入正確的身份證號碼'); num.focus(); return false; }
var phone_reg = /^13[0-9]{1}[0-9]{8}$|15[0-9]{1}[0-9]{8}$|18[0-9]{1}[0-9]{8}|17[0-9]{1}[0-9]{8}$|14[0-9]{1}[0-9]{8}/; var tel_reg = /^([0-9]{3,4}-)?[0-9]{7,8}$/; if(!phone_reg.test(phone.value) && !tel_reg.test(phone.value)){ alert('手機或電話號碼格式不正確。如果是固定電話,必須形如(xxxx-xxxxxxxx)'); phone.focus(); return false; }