日期:2014-05-16  浏览次数:20356 次

求个能输入整数、方向键和退格键的正则表达式
现在有需求要给textbox加上验证,要求只能输入整数,但是我想,一旦要修改的话,可以使用方向键移动到要修改的数字后,然后按退格键删除,再输入新的整数,比如:要将123改成223。我在网上找的是将所有非整数的字符给替换为空,现在想求个正则让方向键和退格键也能验证通过。。求大神指点
------解决方案--------------------
html:

<input type="text" id="onlyNum" />

javascript:

var o=document.getElementById("onlyNum");
o.onblur=function(){
  var reg=/^\d+$/g;
  if(!reg.test(this.value)){
    alert("此处只可以输入整数");
    this.focus();
  }
};

------解决方案--------------------
<input type="text" id="tt" onkeyup="this.value=this.value.replace(/^0+/,'')" style="ime-mode: disabled;">
<script type="text/javascript">
    document.getElementById("tt").onkeydown=function(e){
        e=e
------解决方案--------------------
window.event;
        var k=e.keyCode
------解决方案--------------------
 e.which;
        if(k>47&&k<58&&!e.shiftKey
------解决方案--------------------
k>95&&k<106
------解决方案--------------------
k==8
------解决方案--------------------
k==46
------解决方案--------------------
k==37
------解决方案--------------------
k==39){
            return !0;//按0123456789 backspace delete <--  -->
        }else{
            return !1;
        }
    };
</script>

------解决方案--------------------
这样,先看看替换前后的内容是否一样,内容不一样再给文本框重新赋值。这样就可以使用方向键移动了 

------解决方案--------------------
    $("input:text").keyup(function () {
        var val = $.trim($(this).val());
        var reg = /^\d+$/;
        if (!reg.test(val)) {
            $(this).val(val.replace(/[^\d]+/g, ""));
        }
    })