如何确保只将有效的数字字符输入文本框?

Dav*_*Dev 4 javascript jquery

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

.00或者0.00,但不是0.00.000a

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

如果使用jQuery是不可能的,那么最好的方法是什么?

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

Jac*_*ack 9

只需使用正则表达式匹配

$('#formelement').val().match(/[-+]?[0-9]*\.?[0-9]+/)
Run Code Online (Sandbox Code Playgroud)

(除了选择器,其他一切都是普通的javascript)

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

由于评论中的人强迫我准确,我可以建议你如何找出如何使用这种匹配为你的目的(但所以你不要让任何东西到OP的想象:()

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

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