,js正则表达式验证非正整数,非正浮点数

求助,,,js正则表达式验证非正整数,非正浮点数
tdQuantity.children('input').select().keyup(function () {
                    var tmptxt = $(this).val();
                    $(this).val(tmptxt.replace(/^[^\d.]+$/, ''));
                })

如上所示,需要验证如果不是正整数或者正浮点数,就把输入的内容替换成空,

但  (/^[^\d.]+$/ 的验证效果却有漏洞,诸如 ....555  、 5.5.5   、 5....... 之类的都能通过。求教该如何改进!!
------解决思路----------------------
if(!/^\d+(\.\d*)?$/.test(this.value))this.value=''