我需要为我的学校工作制作一个表格,作为我网站的一部分,我已经完成了表格和许多验证,但我不能做的一件事是数字验证,例如在名字框中我希望它检查数字是否输入,如果是,它将发送错误,我不能这样做,我只能让它在输入数字时发送错误但不输入数字和字符串时,我搜索了这个网站,发现了一些我无法理解的答案。 这是按钮和文本输入的代码
First name: <input type="text" id="firstname" name="firstname" /> <input type="button" id="button" onclick="myFunction()" value="Try it" />
这是脚本的基础:
function myFunction() {
var firstname = document.getElementById("firstname").value;
}
现在我希望如果var(firstname)包含任何数字,将发送错误(“不能使用数字”)消息,我该怎么做?
答案 0 :(得分:1)
迈克在你的问题中的评论很有帮助。 。 。 HTML5表单验证肯定会成为未来的方式。
话虽如此,仍然有很多旧的浏览器不支持HTML5,但仍然存在,所以JS解决方案可能就是你在这里寻找的。 p>
在这种情况下,我建议使用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
。
根据您获得的响应,您可以执行任何您想要处理错误(或缺少错误)的其他逻辑。
答案 1 :(得分:0)
一种解决方案是根据正则表达式计算结果字符串,看它是否只包含字母和空格(或者您允许的任何字符。)
像这样设置你的正则表达式:
var myReg = RegExp('^[A-Za-z ]+$');
var valid = myReg.test(firstname)
你可以使用你想要的任何正则表达式(而且我的注册表很弱,所以请随意接受别人提供的更好的表达。)
我找到的有用工具是debuggex.com。你可以插入一个正则表达式并测试它的作用(虽然你仍然需要知道一些秘密,比如^
表示第一个字符而$
表示最后一个字符。)
修改强>
我认为正则表达式的精彩指南是MDN。
正则表达式实际上只是一个字符串,它解释了可以检查的文本的某种“模式”;在这种情况下,您可以检查您的字符串是否与“仅包含字母和空格”的“模式”匹配。模式本身有自己的自定义语法,看起来很奇怪,但一旦你理解了语法,它们通常很容易解析(尽管互联网上也充满了疯狂的)。
我写的字面意思是“字符串只传递测试,如果从第一个字符(^
开始),它包含给定列表中的一个或多个(+
)字符(AZ ,以及该列表中的 ONLY 字符,然后字符串结束。“
Talemyn的表达可能会更好,因为它会检查数字的存在并失败,这听起来就像你在寻找的那样。
答案 2 :(得分:0)
您可以使用正则表达式来检查字母
试试/^[a-zA-Z]*$/
答案 3 :(得分:0)
这应该
<input type="text" name="first_name" pattern="[a-zA-Z]{0,100}">
您可以使用该模式限制为任何固定模式。 更多帮助: