输入类型文本最多 2 位数字
Posted
技术标签:
【中文标题】输入类型文本最多 2 位数字【英文标题】:Input type text to maximum of 2 digits 【发布时间】:2018-11-14 19:13:46 【问题描述】:我知道 type="number"
可以做到这一点,但我不能使用这个,因为我也有 pattern
与一些不兼容的正则表达式。
有没有办法限制type="text"
的输入? (在我的特殊情况下,限制为小数点后最多 2 位)。
【问题讨论】:
在您的pattern
中指定它。
您需要使用 letdown 事件,如果用户尝试输入第 3 位,则返回 false,因此不允许用户输入
@RobbyCornelissen 该模式已经做了类似的事情。它只匹配最多 2 位数字的数字。用户可以添加更多数字,但不会被验证。我想要的是不要在输入表单中引入超过 2 位数字。这是我正在使用的正则表达式“^(?!0+(?:\\.0*)?(?:[eE]\\d+)?$)^\\d+(?:\\.\\d1,2)?(?:[eE][0-9]1,5)?$
@AlaksandarJesusGene 你知道我在哪里可以找到这样的例子吗?我搜索了但没有找到任何
【参考方案1】:
如果你想限制'.'后面2个字符的字符数,你可以检查总数是否真的是一个数字
并在 '.' 之后的 2 个字符后停止脚本编写
(我用 e.wich == 8 阻止删除键)
<!DOCTYPE html>
<html>
<head>
<script>
function myFunction(e)
var x = document.getElementById("numb").value;
var carac = (e.which == 8) ? '' : String.fromCharCode(e.which);
var nbr = x + carac;
if ( isNaN(nbr) )
e.preventDefault();
document.getElementById("numb").value = '';
alert ( 'Please write a Number!' );
if(! Number.isInteger(nbr*100))
e.preventDefault();
//document.getElementById("numb").value = '';
</script>
</head>
<body>
<p>A function is triggered when the user is pressing a key in the input field.</p>
<input id="numb" type="text" onkeypress="myFunction(event)">
</body>
</html>
【讨论】:
您的代码一般只允许我写 2 位数字。我想要的是能够在小数点后写出 2 位数的最大值。例如:如果我写 42342.14 我应该不能写另一个数字以上是关于输入类型文本最多 2 位数字的主要内容,如果未能解决你的问题,请参考以下文章