天天看点

只能输入数字

控制在input的text里输入的值只能是数字

ASK:写一个小程序,在input的type="text"里控制只能输入数字,如果输入其他字符则会出现提示框!请问怎么做啊?

几种方法:

1、

<script language=java script>

function onlyNum()

{

 if(!(event.keyCode==46)&&!(event.keyCode==8)&&!(event.keyCode==37)&&!(event.keyCode==39))

  if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))

    event.returnValue=false;

}

</script>

<input οnkeydοwn="onlyNum();">

2、

<script>

function check(){

  if (isNaN(tt.value))

  {alert("非法字符!");

  tt.value="";}

}

</script>

<input type="text" name="tt" οnkeyup="check();">

3、

<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>

<input οnkeypress="number()" οnkeyup="filterInput()" οnchange="filterInput()" onbeforepaste="filterPaste()" οnpaste="return false" style="ime-mode: disabled">

常用的全角字符的正则表达式是[/u530-/uFFFFFF],中文[/u4E00-/u9FA5]

这里有一篇关于中日韩的汉字分布信息(英语): http://www.nease.net/~stonec/hanzi/cjkinf.txt

4、允许小数点跟数字:

<input onKeypress="return (/[/d.]/.test(String.fromCharCode(event.keyCode)))" style="ime-mode:Disabled">

5、另一个不错的:

<input οnkeypress="return(event.keyCode>=48&&event.keyCode<=57)" style="ime-mode:disabled" onbeforepaste="clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^/d]/g,’’))">

全角符号范围:

/uFF00-/uFFFF

6、只允许输入汉字:

<input οnkeypress=return(false) οnkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,’’)">

7、推荐的:

<input οnkeypress="return event.keyCode>=48&&event.keyCode<=57" οnpaste="return !clipboardData.getData(’text’).match(//D/)" style="ime-mode:disabled" οndragenter="return false">

可以用Javascript对文本框进行检查,过滤掉非0-9的字符。

  <script language="javascript" event="onkeydown" for="document">

        if(event.srcElement.name=='TextBox1')

        {

              if(!KeyIsNumber(event.keyCode))

              {

                   return false;//这句话最关键

              }

        }

</script>

<script language="javascript">

function KeyIsNumber(KeyCode)

{

    //如果输入的字符是在0-9之间,或者是backspace、DEL键

    if(((KeyCode>47)&&(KeyCode<58))||(KeyCode==8)||(KeyCode==46))

    {

          return true;

    }

    else

    {

          return false;

     }

}

</script>