输入类型文本最多 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 位数字的主要内容,如果未能解决你的问题,请参考以下文章

十进制一位输入类型仅数字 Ionic 3 最新版本 (3.9.2) 我正在使用

JQUERY 一个文本框,限制只能输入百分比或者货币类型

使用replace限定只能输入数字,最多有两位小数

如何将数字转换为文本[重复]

asp.net怎么限制文本框输入的类型c#

excel保留整数17位,