<input onblur="if(!/^(-|\+)?\d+(\.\d+)?$/.test(value))alert('你输入的不是实数')">

解决方案 »

  1.   

    <input onblur="if(!mm(value))focus();">
    <SCRIPT LANGUAGE="JavaScript">
    function mm(s)
    {
      s = s.replace(/^\s+|\s+$/,'');
      if(s == "") return true;
      if(/^(-|\+)?\d+(\.\d{1,2})?$/.test(s)) return true;
      alert('你输入的不是实数!');
      return false;
    }
    </SCRIPT>
      

  2.   

    以前做的一个项目里写的
    现在请大家一起来批批了
    =======================================================
    <PUBLIC:COMPONENT>  
    <PUBLIC:ATTACH event="onkeyup" handler="okeyup" />  
    <SCRIPT language="javascript"> 
    function okeyup()
    {
    var cls = this.className; 
    var val="";
    var ecode = event.keyCode; 

    if(ecode == 8 || ecode == 46){} // 不判断按下的键是 "backspace,delete"
    else{
    if(ecode >= 37 && ecode <=40){} // 不判断按下的键是 "↑,↓,←, →"
    else{
    switch(cls)
    {
    case "floatcss": //正浮点数 
    if(/[^0-9\.\%]/gi.test(this.value))
    this.value = this.value.replace(/[^0-9\.\%]/gi, '');
    val = this.value;
    var ary = val.split('.'); //禁止有第二个小数点输入
    if(ary.length > 2)
    this.value = val.substring(0, val.length-1)
    val = this.value;
    var aryN = val.split('%');
    if(aryN.length > 2)
    this.value = val.substring(0, val.length-1)
    break;
    case "nfloatcss": //负浮点数 (包括正)
    if(/[^0-9\-\.]/gi.test(this.value))
    this.value=this.value.replace(/[^0-9\-\.]/gi, '');
    val = this.value;
    var ary = val.split('.'); 
    if(ary.length > 2)
    this.value = val.substring(0, val.length-1)
    val = this.value;
    var aryN = val.split('-');  //禁止有第二个负号输入
    if(aryN[0] != "")
    this.value = aryN.join('');
    if(aryN.length > 2)
    this.value = "-" + aryN.join('')
    break;
    case "intcss": //正整数
    if(/[^0-9]/gi.test(this.value))
    this.value=this.value.replace(/[^0-9]/gi, '');
    break;
    case "nintcss": //负整数 (包括负)
    if(/[^0-9\-]/gi.test(this.value))
    this.value=this.value.replace(/[^0-9\-]/gi, '');
    val = this.value;
    var aryN = val.split('-');
    if(aryN[0] != "" )
    this.value = aryN.join('');
    if(aryN.length > 2)
    this.value = "-" + aryN.join('')
    break;
    }
    }
    }
    }
    </SCRIPT> 
    </PUBLIC:COMPONENT>