你把中文状态下输入的数字的Unicode码找出来加进去就行了呀!

解决方案 »

  1.   

    不要用onkey事件,用onblur事件检查。用KeyCode检查比较麻烦,设想一下,如果一个数字串中输入两个小数点或两个负号怎么办?
    <script>
    function checkInput( obj ) {
       var re = /^(|0|(-?[1-9]\d*)|(-?(0|([1-9]\d*))\.\d+))$/;
       if ( ! re.test ( obj.value ) ) {
          alert ( "错误:输入的是非法数字串!");
          obj.focus(); 
       }
       return ( true );
    }
    </script>
    <form name="InputForm">
    <input type="text" name="T1" size="12" maxlength="12" onBlur="checkInput(this)">
    <input type="text" name="T2" size="12" maxlength="12" onBlur="checkInput(this)">
    </form>