gpt4 book ai didi

JavaScript 检查错误地允许输入字段中的数字

转载 作者:行者123 更新时间:2023-11-30 12:52:02 25 4
gpt4 key购买 nike

我有一份学校作业,其中包括检查一个值是否为整数。这是实际的作业笔记:

  1. 编写 JavaScript™ 代码来预测和处理预期数字字段的错误。这段代码在按键时执行,输入的值保存在一个名为 enteredChar 的变量中。包含 JavaScript™ 语句的 try block ,用于检查字符是否不是数字或非字母数字字符,或者是否抛出错误消息。

我的代码如下:

function numCheck() {
var enteredChar = document.getElementById('numeric_field').value;

var pattern = new RegExp('/^\d+$/'); // numbers only match

if (pattern.test(enteredChar)) {
alert("All good!");
} else {
try {
throw new Error("Invalid numerical character(s) given!");
} catch (e) {
alert(e);
}
}

html如下:

<form>
Enter Numeric Value: <input type="text" id="numeric_field" onkeypress="numCheck()">
</form>

然而,无论我做什么,如果第一个字符不是数字,它都能正常工作,但当第二个字符是数字时,它也会显示此警告对话框。任何帮助,将不胜感激!如果每个字符只是数字,我想检查按下的每个键,如果不是,则显示警报对话框,但如果是,则显示包含“一切都好!”的警报对话框。我读到 onkeyup 和 onkeydown 更适合这个,但由于作业说使用 onkeypress 我有点坚持使用它。

最佳答案

使用正则表达式会使这变得更加困难。在这种情况下,使用 isNan 要简单得多(假设您只需要知道它是不是数字,而不是字母和数字的某种组合)。

function numCheck() {
var enteredChar = document.getElementById('numeric_field').value;

if (!isNaN(enteredChar)) {
alert("All good!");
} else {
try {
throw new Error("Invalid numerical character(s) given!");
} catch (e) {
alert(e);
}
}

}

关于JavaScript 检查错误地允许输入字段中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20622178/

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