gpt4 book ai didi

javascript - 正则表达式只允许数字和小数在 Javascript 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 16:00:37 26 4
gpt4 key购买 nike

我正在尝试下面的代码,但正则表达式不起作用,它允许输入框中的所有字符。

期望:输入文本框不应接受数字和小数点以外的任何其他字符。

<html>
<body>
<input type="text" onkeypress="myfunction(event);"></input>
<script>
function myfunction(e){
var p = new RegExp(/^[0-9]+([.][0-9]+)?$/);
return e.charCode === 0 || p.test(String.fromCharCode(e.charCode));
}
</script>
</body>
</html>

最佳答案

这是另一种方法。我正在使用 oninput 事件,该事件在用户每次更改值时触发(不仅是按键)。我正在保存最后一个有效值并在新值无效时恢复它。

<input type="text" id="test1" oninput="validateNumber(this);" />
<script>
var validNumber = new RegExp(/^\d*\.?\d*$/);
var lastValid = document.getElementById("test1").value;
function validateNumber(elem) {
if (validNumber.test(elem.value)) {
lastValid = elem.value;
} else {
elem.value = lastValid;
}
}
</script>

与这里的大多数其他答案相比,这可以完美地处理所有输入技术,如拖放、复制和粘贴等。它还支持特殊的控制键,如 Ctrl+a(对于选择内容)、Pos1End等。

关于javascript - 正则表达式只允许数字和小数在 Javascript 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41980425/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com