是否有任何现有的 jQuery 功能可以测试输入到文本框中的字符是数字还是有效数字?
比如
.00
或 0.00
,但不是 0.00.00
或 0a
我想做的是在任何无效字符出现在文本框中之前捕获它们。
如果 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/