input数字输入框可以输入e的原因
程序员文章站
2022-04-06 11:38:23
...
今天在查看表单实例的时候,发现了一个只能输入数字的input,却可以输入e字母
<Input type="number" v-model.number="form.number" placeholder="请输入"/>
原因是e在数学上代表无理数,e是自然对数的底数,是一个无限不循环小数,其值是2.71828…,所以在输入e时,输入框认为是数字。
为了避免这个bug,我们可以是用下面的方法
onKeypress="return (/[\d\.]/.test(String.fromCharCode(event.keyCode)))
将上面的input改为下面这样:
<Input type="number" v-model.number="number" placeholder="请输入"
onKeypress="return (/[\d\.]/.test(String.fromCharCode(event.keyCode)))"/>
fromCharCode(numX,numX,…,numX) 可接受一个或多个指定的 Unicode 值,然后返回一个字符串,
String.fromCharCode(72,69,76,76,79) --> HELLO
上一篇: Input中实现对身份证的验证
下一篇: 用正则表达式 控制输入为正数数值型
推荐阅读
-
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
-
输入大于11位的数字会以E+形式显示 其实一个0就可以完全显示
-
vue的input输入框只能输入数字
-
JS验证input输入框(字母,数字,符号,中文)的代码实例分享
-
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
-
div可以输入内容不用input作为输入框屏蔽自动的input样式_HTML/Xhtml_网页制作
-
div可以输入内容不用input作为输入框屏蔽自动的input样式详解
-
div可以输入内容不用input作为输入框屏蔽自动的input样式_HTML/Xhtml_网页制作
-
JS验证input输入框(字母,数字,符号,中文)的代码实例分享
-
div可以输入内容不用input作为输入框屏蔽自动的input样式详解