输入数字和小数点

<!-- 此功能实现 输入框 -->
<!-- 只能输入0~9,以及一个小数点,代表的是一个值-->


<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <input name="maxSpeed" onkeyup="clearNoNum(event,this)" onafterpaste="clearNoNum(event,this)" >
    <script language="JavaScript" type="text/javascript">
    function clearNoNum(event,obj){
        //响应鼠标事件,允许左右方向键移动 
        event = window.event||event;
        if(event.keyCode == 37 | event.keyCode == 39){
            return;
        }
        //先把非数字的都替换掉,除了数字和. 
        obj.value = obj.value.replace(/[^\d.]/g,"");
        //必须保证第一个为数字而不是. 
        obj.value = obj.value.replace(/^\./g,"");
        //保证只有出现一个.而没有多个. 
        obj.value = obj.value.replace(/\.{2,}/g,".");
        //保证.只出现一次,而不能出现两次以上 
        // obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
    }
    </script>
</body>
</html>

 

 

<!-- 此功能实现 输入框 -->
<!-- 只能输入0~9-->
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>

<input onkeypress="number()" onkeyup="filterInput()" onchange="filterInput()" onbeforepaste="filterPaste()" onpaste="return false" style="ime-mode: disabled">

<script language=jscript>
function number(){
    var char = String.fromCharCode(event.keyCode)
    var re = /[0-9]/g
    event.returnValue = char.match(re) != null ? true : false
}

function filterInput(){
    if (event.type.indexOf("key") != -1){
        var re = /37|38|39|40/g
        if (event.keyCode.toString().match(re)) return false
    }
    event.srcElement.value = event.srcElement.value.replace(/[^0-9]/g, "")
}

function filterPaste(){
    var oTR = this.document.selection.createRange()
    var text = window.clipboardData.getData("text")
    oTR.text = text.replace(/[^0-9]/g, "")
}
</script>



</body>
</html>

 

posted @ 2016-07-01 14:05  rysly  阅读(330)  评论(0)    收藏  举报