Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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 - Fatal编程技术网

我们如何获得一个javascript程序来阻止数字输入?

我们如何获得一个javascript程序来阻止数字输入?,javascript,Javascript,我的意思是如果输入了数字,它必须抛出一个错误如果您想排除数字,只需用regEx替换数字就可以防止输入数字。您可以告诉用户,他们也不允许输入数字 //collect the string var userStr = getTheString();//whatever the source of the string is... probably called onKeyUp if(userStr.match(/\d/)){ userStr = userStr.replace(/\d+/g,"

我的意思是如果输入了数字,它必须抛出一个错误

如果您想排除数字,只需用regEx替换数字就可以防止输入数字。您可以告诉用户,他们也不允许输入数字

//collect the string
var userStr = getTheString();//whatever the source of the string is... probably called onKeyUp
if(userStr.match(/\d/)){
   userStr = userStr.replace(/\d+/g,"");//[edited to include all digits]
   alert("no numbers please");
}
[编辑] 这听起来像是一个家庭作业,所以说得很清楚,正则表达式是执行各种字符串操作和验证的非常强大的方法。在上面的示例中,我正在测试(使用match)以查看字符串中是否存在任何数字。我建议在用户将手指从键盘上提起时运行此命令,这样可以确保防止未经授权的输入。 replace()方法查找字符串中的任何和所有数字(\d+)并用第二个参数替换它们,该参数只是一个空字符串。显然,你可以用更复杂的方法来完成这一切,使用循环和你自己的字符串方法,逐个字母地检查字符串,然后提取数字字符,如果你的老师希望看到你在不使用正则表达式的情况下解决这个问题(对于一个必须学习算法思维的初学者来说,这是完全合理的)那么你应该这么说,我们很乐意帮助你以“丑陋”的方式来做


干杯。

有关检查输入的方法,请参阅。基本上,它会定期扫描输入字段,读取其输入和格式规则,并在字段值不符合这些规则时发出警告。这种方法还会捕获粘贴到输入字段中的值(Ctrl-V)。

您可以使用此javascript函数

    function onlyNumbers(event) {
    var Key = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
    if (Key == 13 || (Key >= 48 && Key <= 57)) return true;
    else return false;
}
仅函数编号(事件){
var Key=event.keyCode?event.keyCode:event.which?event.which:event.charCode;

如果(键==13 | |(Key>=48&&Key=48&&Key您的意思是,如果条目中至少有一个数字,或者如果条目完全由数字组成,您希望拒绝输入?浮点数呢?非拉丁数字呢?您能更具体一点吗?谢谢。排除字符之间的任何数字,无论它来自何处,数字也是字符。当你说“字符”时,你是指“字母”还是“除数字以外的任何东西(包括标点符号等)”?我的意思是用户只能输入字母,不能输入数字。@James您仍然需要告诉我们标点符号。很好的开始。让我们看看OP是否想要删除所有数字,在这种情况下,最好替换
/d+/g
。(然后它将是+1。)对于使用IME输入数据的用户来说,摆弄键码是有问题的,而且它不会阻止用户在输入中粘贴数字。
<input type="text" onkeypress="return onlyNumbers(event);" />
function onlyNumbers(event) {
    var Key = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
    if (Key == 13 || (Key >= 48 && Key <= 57)) return true;
    else alert("Error");
}