请教一个正则表达式,限制只能输入正确的数字字符串

input中只能输入正数或者负数,包括小数,其他的都不能输入,这个正则有人写过吗?求教

说明:
绑定keyup事件,一旦用户输入非法的字符,则清空绑定的input

element.bind('keyup', function(event) {
      $(this).val(($(this).val().replace(/我们的正则表达式/,'')));

 });
阅读 5.6k
5 个回答
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

这是匹配所有浮点数

var pat = /^[-+]?\d+(\.\d+)?$/

提示: 并不匹配.2, .34之类的省略整数部分的浮点数.

试试看我这个,应该没什么问题

^-?(.\d+|\d+(.\d+)?)$

换了个思路,测试时可以的。

$(this).val(($(this).val().replace(/[^-0-9.\+]+|(.*)(?=-)|(.*)(?=\+)|\.\d*(?=\.)|^\./g,'')));

诶,你parseFloat一下,不比正则方便?