阻止在文本输入中输入数字
Blocking numbers from being entered into a text input
我需要为我的学校作业制作一个表格,作为我网站的一部分,我已经做了表格和许多验证,但有一件事我不能做,那就是数字验证,例如,在名字框中,我想让它检查是否输入了数字,如果输入了,它会发送一个错误,我不能做,我只能让它在输入数字时发送错误,但不能在输入数字和字符串时发送错误。我搜索了这个网站,找到了我无法理解的答案。。这是按钮和文本输入的代码
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)包含任何数字,将发送一条错误消息("不能使用数字"),我该怎么做?
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
。
根据您得到的响应,您可以执行任何其他逻辑来处理错误(或缺少错误)。
您可以使用正则表达式来检查字母尝试/^[a-zA-Z]*$/
一种解决方案是根据正则表达式评估结果字符串,以确定它只包含字母和空格(或您允许的任何字符)
像这样设置正则表达式:
var myReg = RegExp('^[A-Za-z ]+$');
var valid = myReg.test(firstname)
你可以使用任何你想要的正则表达式(而且我的reg-fu很弱,所以可以随意接受其他人提供的更好的表达式。)
我在debuggex.com上找到了一个有用的工具。你可以插入一个正则表达式并测试它的作用(尽管你仍然需要知道一些秘密,比如^
表示第一个字符,$
表示最后一个字符。)
编辑
我认为MDN是正则表达式的一个很好的指南。
正则表达式实际上只是一个字符串,它解释了可以检查的特定文本"模式";在这种情况下,您可以检查字符串是否与"仅包含字母和空格"的"pattern"匹配。模式本身有自己的自定义语法,看起来可能很奇怪,但一旦你更好地理解了语法,它们通常很容易解析(尽管互联网上也充满了疯狂的语法)。
我写的这句话的字面意思是";只有当字符串从第一个字符(^
)开始,包含给定列表中的一个或多个(+
)字符(A-Z、A-Z和空格)以及该列表中的only字符,然后字符串结束时,字符串才能通过测试"
Talemyn的表达式可能效果更好,因为它检查数字的存在,但失败了,这听起来就像你在寻找的。
这应该做
<input type="text" name="first_name" pattern="[a-zA-Z]{0,100}">
您可以使用该模式限制为任何固定模式。更多帮助:
模式链接
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- 在javascript中确定输入数字是负数还是正数
- JQM simpledialog:如何提示输入数字
- 如何在jquery+javascript中只在输入框中输入数字(使用regex)
- 我的角度形式输入[数字]验证不起作用
- Angular2 Javascript 验证 输入数字而不是字符
- Javascript提示和警报输入一个数字,它将循环,您将输入数字以获得它的平均值
- 阻止在文本输入中输入数字
- 阻止在文本区域/文本框中输入数字
- javascript中的函数重载使两个函数名称相同,但输入数字不同
- 如何允许用户只输入数字和字母
- 接收输入数字,直到用户输入零.然后输出最高.JavaScript
- 限制输入数字小数点前后的数字
- 显示给定输入数字的数据集中字母表的所有可能组合
- 如何通过输入数字值动态添加文本区域输入?AngularJs.
- 如何在文本字段中输入数字时立即打印结果
- 在文本框中仅输入数字
- AngularJs ngModel 值在使用 IME 日语输入数字时重复Microsoft
- 使用输入数字值作为另一个字段的输入数字最大值
- 我如何在文本输入字段中输入数字,而无需在 JavaScript 或 jQuery 中输入模式