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