我正在尝试为十进制数创建一个正则表达式,同时“-”或“+”符号在开始时是可选的。
有很多关于这个的信息,所以我完成了这个:
/^[+-]?\d+(\.\d+)?$/
因此,我已经使用该test()
功能在控制台中对此进行了测试,并且运行良好。
我的问题更多关于在哪里进行检查:
如果检查在
keypress
事件中,我可以使用preventDefault()
以“使用”不正确的符号,但我正在检索这样的文本并且无法访问最后输入的符号 -$(event.target).val()
如果检查是在
keyup
事件我可以访问整个文本,但我无法删除不正确的符号,因为我不知道它是哪个,以及它被放在哪里(使用鼠标可以把它放在开始或在有效字符串的中间)
我需要检查符号组合,而不是仅验证符号。例如:
- //invalid
- 1 //valid
1. //invalid
1.2 //valid
所以,我想我应该在输入整个字符串时检查,但是,如何两个删除不正确的字符?在无效时删除整个字符串看起来不正确。