解决 html5 input type='number' 类型可以输入e

当给 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 或者 小数点了

posted @ 2018-08-20 09:24  Sky_Ice  阅读(10726)  评论(1编辑  收藏  举报