Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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,我需要为我的学校作业制作一个表格,作为我网站的一部分,我已经做了表格和很多验证,但我不能做的一件事是数字验证,例如在名字框中,我希望它检查是否输入了数字,如果输入了,它将发送一个错误,我不能这样做,我只能让它在输入数字时发送错误,但不能在输入数字和字符串时发送错误。我搜索了这个网站,找到了我无法理解的答案。。 这是按钮的代码和文本输入 First name: <input type="text" id="firstname" name="firstname" /> <input

我需要为我的学校作业制作一个表格,作为我网站的一部分,我已经做了表格和很多验证,但我不能做的一件事是数字验证,例如在名字框中,我希望它检查是否输入了数字,如果输入了,它将发送一个错误,我不能这样做,我只能让它在输入数字时发送错误,但不能在输入数字和字符串时发送错误。我搜索了这个网站,找到了我无法理解的答案。。 这是按钮的代码和文本输入

First name: <input type="text" id="firstname" name="firstname" /> <input type="button" id="button" onclick="myFunction()" value="Try it" />

现在我想知道,如果var(firstname)包含任何数字,将发送一条错误(“不能使用数字”)消息,我该怎么做?

一个解决方案是根据正则表达式计算结果字符串,以查看它只包含字母和空格(或任何允许的字符)

按如下方式设置正则表达式:

var myReg = RegExp('^[A-Za-z ]+$');
var valid = myReg.test(firstname)
你可以使用任何你想要的正则表达式(而且我的reg-fu很弱,所以请随意接受其他人提供的更好的表达式)

我发现的一个有用的工具是。您可以插入正则表达式并测试它的功能(尽管您仍然需要知道一些秘密,例如
^
表示第一个字符,
$
表示最后一个字符)

编辑

我认为正则表达式的一个很好的指南是

正则表达式实际上只是一个字符串,它解释了可以检查的文本的某种“模式”;在这种情况下,可以检查字符串是否与“仅包含字母和空格”的“模式”匹配。这些模式本身有自己的自定义语法,可能看起来很奇怪,但一旦你更好地理解了语法,它们通常很容易解析(尽管互联网上也有很多疯狂的模式)

我写的表达式字面意思是“一个字符串只有从第一个字符(
^
)开始,包含给定列表中的一个或多个(
+
)字符(A-Z、A-Z和空格)和该列表中的字符,才通过测试,然后字符串结束。”


Talemyn的表达式可能工作得更好,因为它检查是否存在数字,但失败了,这听起来像是您正在寻找的。

您可以使用正则表达式检查字母
试一下Mike在你的问题中的评论很有帮助。HTML5表单验证无疑将是未来的发展方向

话虽如此,仍然有很多不支持HTML5的旧浏览器在那里浮动,所以JS解决方案可能就是您在这里寻找的

在这种情况下,我建议进行RegExp检查,以查看该值是否符合您的条件:

var regexNumberPattern = new RegExp("[0-9]");

if (regexNumberPattern.test(firstname)) {
    . . . do error stuff . . .
}
else {
    . . . do valid value stuff (if anything) . . .
}
RegExp模式基本上表示“查找0到9之间的任何字符”。通过使用
.test(STRING_VAL)
,您可以根据特定值(在本例中为“firstname”输入值)测试该模式
.test()
如果在字符串中找到模式,将返回
true
;如果没有,将返回
false

根据得到的响应,您可以执行任何附加逻辑来处理错误(或缺少错误)。

这应该可以

<input type="text" name="first_name" pattern="[a-zA-Z]{0,100}">

您可以使用该模式限制为任何固定模式。 更多帮助:


这称为“表单字段验证”。通过使用“HTML5表单字段验证”在谷歌上搜索如何做到这一点,这是我的第一次尝试,它包含了您询问的所有信息。你们能给我解释一下正则表达式的更多信息吗?因为我想了解我在做什么,而不仅仅是记住它。这假设只允许使用字母。他只是说数字是不允许的。你们能给我解释一下正则表达式吗?因为我想知道我在做什么,而不仅仅是记住它,因为它假设只允许字母。他只是说数字是不允许的。谢谢,这很有帮助!这假定只允许使用字母。他只是说数字是不允许的。我写道“你可以使用这个模式限制到任何固定的模式。”这个模式可以修改成任何东西。这是一个例子。所有允许的字符都可以写入其中@talemynFair够了。但是可能会让人困惑,因为您的示例模式处理的问题与他正在寻找的问题非常相似(虽然不完全相同)。我如何使该模式在中发送消息,而不是他现在所犯的错误?@user3108378我想您不能。我不知道是否有任何关于错误按摩的解决方案。谢谢,效果很好,很简单,明白了!
<input type="text" name="first_name" pattern="[a-zA-Z]{0,100}">