<input id="phone" type="number" oninput="maxLengthCheck(this,4)"><script>function maxLengthCheck(object,max){ object.value=object.value.toString().replace(/[^0-9]/g,'').slice(0, max); }</script>
该input只允许输入4码数字,故设属性为number,本想着可以少写一些js验证 (我就懒)
殊不知实测时发现竟可以输入"e"及"."
原因是数学中 e=2.17828
"."在输入的过程中确实有被取代掉,但若为最后一码或是停止输入则画面上还是会出现小数点
故调整属性为"tel",测试后可达到原有目的
且若浏览器不支援tel属性,将默认为"text",亦可达成需求
参考文件:
https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/Input/tel