javascript - 如何确保只有有效的数字字符输入到文本框中?

标签 javascript jquery

是否有任何现有的 jQuery 功能可以测试输入到文本框中的字符是数字还是有效数字?

比如

.000.00,但不是 0.00.000a

我想做的是在任何无效字符出现在文本框中之前捕获它们。

如果 jQuery 无法做到这一点,最好的方法是什么?

我知道使用 JavaScript 我可以测试 isNaN() 然后返回 false,但是当我必须考虑所有可能的击键时,这将开始变得棘手。

最佳答案

只需使用正则表达式匹配

$('#formelement').val().match(/[-+]?[0-9]*\.?[0-9]+/)

(不包括选择器,其他一切都是纯 javascript)

如评论中所述,由于您需要为插入的每个字符执行此操作,因此您必须考虑空小数部分是否有效(例如 /[-+]?[0-9]*\.?[0 -9]*/)

由于评论中的人迫使我精确,我可以建议您如何找出如何将此匹配用于您的目的(但这样您就不会让 OP 想像任何东西 :( )

您可以将正则表达式拆分为 3 个正则表达式,一个用于第一部分(最终符号和整数部分),一个用于第一部分加上点符号,一个用于整数。

如果输入至少与刚刚描述的三个正则表达式中的一个匹配,那么您的验证例程应该在写入时接受输入,并且最后完成的验证应该在最后一个正则表达式匹配时接受(因为您正在提交值和你需要它是正确的)

关于javascript - 如何确保只有有效的数字字符输入到文本框中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3972702/

相关文章:

javascript - 如何通过Ajax向Mysql插入多标签输入同名

jquery - 如果页面的 url 为 '#' ,并且嵌入了 flash/swf,则 IE 标题将更改为 <afterHash>

jquery - 如果前一个请求正在运行,如何取消 $.ajax 请求?

jquery - 如何在随文本增长的输入字段中模拟回车

Javascript - 在 window.print() 之前动态切换打印样式表

javascript - 从 Tomcat 提供的网页生成 PDF

javascript - 解析服务器云代码保存对象

javascript - 如何检测鼠标在 jQuery 中的子元素上?

jquery - 如何获取要在 Nivo Slider 中加载的下一张图像的 src

Javascript - 捕获层次结构