Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 输入字段以仅接受特定数字_Javascript_Html_Forms_Validation_Input - Fatal编程技术网

Javascript 输入字段以仅接受特定数字

Javascript 输入字段以仅接受特定数字,javascript,html,forms,validation,input,Javascript,Html,Forms,Validation,Input,我已经创建了一个表单,现在我想在其中添加一个输入字段,它只接受一个特定的数字,即数字“4”。这更像是垃圾邮件检查,用户被询问“1+3的答案是什么?”然后他/她必须在输入字段中输入数字“4”,以便处理表单。如果在输入字段中输入任何其他数字并提交表单,则会触发一个弹出窗口来解释错误 我已经创建了一个只接受数字4,但不幸的是,它允许接受“句号” HTML: 您的正则表达式只能替换[^4](任何非4字符)。我不知道为什么您还包括-4(范围)和.('.'字符) 需要注意的是,在keyup上进行安全保护并没

我已经创建了一个表单,现在我想在其中添加一个输入字段,它只接受一个特定的数字,即数字“4”。这更像是垃圾邮件检查,用户被询问“1+3的答案是什么?”然后他/她必须在输入字段中输入数字“4”,以便处理表单。如果在输入字段中输入任何其他数字并提交表单,则会触发一个弹出窗口来解释错误

我已经创建了一个只接受数字4,但不幸的是,它允许接受“句号”

HTML:


您的正则表达式只能替换
[^4]
(任何非4字符)。我不知道为什么您还包括
-4
(范围)和
.
('.'字符)


需要注意的是,在keyup上进行安全保护并没有多大帮助。任何人都可以启动webkit inspector并手动在其中放置一个3。如果这只是一个有趣的实验,那也很酷:)

我知道这篇文章有点发霉,所以我想我可以把它更新一点

首先,您不应该对事件触发器使用“keyup”,因为它是处理器密集型的。想象一下,如果您想将一个数字与多个数字进行匹配,您可以看到“keyup”是如何出现问题的

使用“模糊”事件是更好的触发器,因为它在用户完成向表单字段输入数字后检查数值

如果我理解OP,那么为什么要使用正则表达式来进行简单的操作呢 比赛?相反,这是我编写函数的一种方法(对于jQuery 1.11.0+)。它还进行额外检查,以确保条目确实也是一个数字

$('#humancheck').blur( function(){ 
  if (isNaN(this.value)) alert('Not a Number');
  if (this.value != 4) alert('Incorrect Number');
});

javascript中的垃圾邮件检查是毫无意义的。机器人不会为你的
keyup
代码操心。如果你不想允许一个句号,为什么你在正则表达式中有一个呢?为什么你不简单地这样检查:一个spambot在功能上等同于一个禁用了JavaScript的用户,所以你在JavaScript中创建的任何垃圾邮件检查实际上都不会阻止垃圾邮件。您需要为此进行服务器端验证。
jQuery('#humancheck').keyup(function () { 
    this.value = this.value.replace(/[^4-4\.]/g,'');
});
$('#humancheck').blur( function(){ 
  if (isNaN(this.value)) alert('Not a Number');
  if (this.value != 4) alert('Incorrect Number');
});