您的位置:首页 > Web前端 > JavaScript

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

2008-08-04 19:54 836 查看
<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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: