zoukankan      html  css  js  c++  java
  • 验证数字可以有千分符可以有0个1个小数点小数点后输入后四舍五入保留两位(写个js验证真费劲)

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
            <script type="text/javascript" language="javascript">  
    function FormatNumber(srcStr,nAfterDot)        //nAfterDot小数位数
    {
        for(var i = 0 ; i < srcStr.length-1 ; i++)
        {
            srcStr=srcStr.replace(",","");
        }

        var srcStr,nAfterDot;
        var resultStr,nTen;
        srcStr = "" + srcStr + "" ;
        strLen = srcStr.length;
        dotPos = srcStr.indexOf(".",0);
       
        if (dotPos == -1)
        {
            resultStr = srcStr+".";
            for (i=0;i<nAfterDot;i++)
            {
                resultStr = resultStr+"0";
            }
        }
        else
        {
            if ((strLen - dotPos - 1) >= nAfterDot)
            {
                nAfter = dotPos + nAfterDot + 1;
                nTen =1;
                for(j = 0; j < nAfterDot; j++)
                {
                  nTen = nTen*10;
                }
                resultStr = Math.round(parseFloat(srcStr)*nTen)/nTen;
            }
            else
            {
                resultStr = srcStr;
               
                for (i=0;i<(nAfterDot - strLen + dotPos + 1);i++)
                {
                  resultStr = resultStr + "0";
                }
            }
        }
        resultStr= "" + resultStr;
        if(resultStr.indexOf(".")=="-1")
        {
            resultStr1=resultStr;
        }
        else
        {
            resultStr1 = resultStr.substring(0 , resultStr.indexOf("."));
        }
        var words = resultStr1.split(""); 
        resultStr1="";
        for( i = 0; i<words.length ;i++)
        {
            if( i!=0 && (i+1)%3 == 0)
            {
                resultStr1= "," + words[words.length-i-1] + resultStr1;
            }
            else
            {
                resultStr1= words[words.length-i-1] + resultStr1;
            }
        }
        if(words.length%3 == 0)
        {
            resultStr1=resultStr1.substring(1);
        }
        if(resultStr.indexOf(".")=="-1")
        {
            resultStr=resultStr1 + ".00";
        }
        else
        {
            resultStr=resultStr1 + resultStr.substring(resultStr.indexOf(".") , resultStr.length);
        }
        return resultStr;
         
    }

           
           
           
    function isDigit(s)
    {
        var patrn=/^-?[0-9\,]*\.?\d*$/;
        if (!patrn.exec(s))
        {
            return false;
        }
        else
        {
            return true
        }
    }

    var Pre="";
    function a(str)
    {
        Pre=str.value;
    }

    function b(str)
    {
        var a=str.value;
        if(a!="")
        {
            var b=isDigit(str.value);
            if(!b)
            {
                str.value=Pre;
                Label1.style.display="block";
            }
            else
            {
                Label1.style.display="none";
            }
        }
    }

    function d(str)
    {

        str.value= FormatNumber(str.value,2);
        if(str.value==""||str.value==".00")
        {
        str.value="0";
        }
    }

        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
         <input id="Text1" type="text" onkeypress="a(this)" onpropertychange="b(this)" onblur="d(this)"/>
            <asp:Label ID="Label1" runat="server" Text="格式不正确" BackColor=red style="display:none"></asp:Label>
        </div>
        </form>
    </body>
    </html>

  • 相关阅读:
    [HNOI2008] [BZOJ1008] 越狱|组合数学
    (转)位运算简介及使用技巧
    AW297 赤壁之战(数据结构优化DP)
    AW280 陪审团
    AW288 休息时间
    AW281 硬币
    AW383 观光
    AW366 看牛 (欧拉回路)
    AW365 圆桌骑士
    AW363 B城
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/1260371.html
Copyright © 2011-2022 走看看