现在有3个文本框,分别是 单价 , 数量 和 邮费,这3个必须做出一下的验证单价 : 金额必须是大于0.01及小于10000000.00的数字(小数最多为2位)数量 : 必须是大于0件,小于10000件邮费 : 必须是大于0.01及小于10000000.00的数字(小数最多为2位)好像要考虑好几个问题,一是只能输入数字,二是只能只有1个小数点,三是不能有负数,希望大家指点

解决方案 »

  1.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function checkNum(obj){
    var val = obj.value;
    var fval = parseFloat(val);
    if(isNaN(fval)){
    alert('not number');
    return;
    }else{
    var sval = new String(fval);
    var i = sval.indexOf(".");
    if(i>=0){
    var ssval = sval.substring(i+1);
    if(ssval.length > 2){
    alert('只能是小于两位小数点的数');
    return;
    }
    } if(fval<=0.01 || fval>= 10000000.00){
    alert("金额必须是大于0.01及小于10000000.00的数字");
    return;
    }
    }
    }
    //-->
    </SCRIPT>
    </HEAD><BODY>
    单价:<input onblur="checkNum(this)">
    </BODY>
    </HTML>
      

  2.   

    <SCRIPT> 
    function check(obj)
    {
    var re=/^(0|[1-9]+)\.\d{0,2}$/;
    if(!re.test(obj.value))
    {
    alert('单价只能由数字组成且带有2位小数,格式为0.00')
    }
    if(obj.value<0.01||obj.value>10000000.00)
    {
    alert('单价只能大于0.01及小于10000000.00')
    }
    }
    </SCRIPT> 
    单价:<input onblur="check(this)"> 
      

  3.   

    <SCRIPT> 
    function check(obj)
    {
    var re=/^(0|[1-9]+)\.\d{2}$/;
    if(!re.test(obj.value))
    {
    alert('单价只能由数字组成且带有2位小数,格式为0.00')
    }
    if(obj.value<0.01||obj.value>10000000.00)
    {
    alert('单价只能大于0.01及小于10000000.00')
    }
    }
    </SCRIPT> 
    单价:<input onblur="check(this)"> 
      

  4.   

    “好像要考虑好几个问题,一是只能输入数字,二是只能只有1个小数点,三是不能有负数,希望大家指点”一和三可以用
    onKeyUp="value=value.replace(/[^.0-9]/g,'')" onchange="value=value.replace(/[^.0-9]/g,'')"
    解决二(还有小数点后的位数)可以放到JS函数里面判断
      

  5.   

    你没看到我的中文写着什么吗?
    单价只能由数字组成且带有2位小数,格式为0.00如果你想要整数也可以,简单var re=/^\d{,}$|^(0|[1-9]+)\.\d{2}$/;
    即可
      

  6.   

    还有简写为:var re=/^(0|[1-9]+)(\.\d{1,2})?$/;
      

  7.   

    <SCRIPT> 
    function check(obj)
    {
    var re=/^(0|[1-9]+)(\.\d{1,2})?$/;
    if(!re.test(obj.value))
    {
    alert('单价只能由数字组成且最多带有2位小数')
    }
    if(obj.value<0.01||obj.value>10000000.00)
    {
    alert('单价只能大于0.01及小于10000000.00')
    }
    }
    </SCRIPT> 
    单价:<input onblur="check(this)"> 
    这样不就可以包含整数了?
      

  8.   

    用js正则表达式两位小数点,下面正则表达式验证的输入数字,如:50,50.0或50.00
    /(^(0|[1-9]+)\.\d{0,2}$)|(^(0|[1-9]+)$)/