function formatNum(s) //将数字转换成三位逗号分隔的样式
{
if(!/^(\+|-)?\d+(\.\d+)?$/.test(num)){alert("wrong!"); return num;}
var re = new RegExp().compile("(\\d)(\\d{3})(,|\\.|$)");
num += ""; while(re.test(num))
num = num.replace(re, "$1,$2$3")
return num;
}
alert(formatNum(-12345678.123));
alert(formatNum("12345678.123"));
alert(formatNum("10000000000000000000000000000000000000000"));
{
if(!/^(\+|-)?\d+(\.\d+)?$/.test(num)){alert("wrong!"); return num;}
var re = new RegExp().compile("(\\d)(\\d{3})(,|\\.|$)");
num += ""; while(re.test(num))
num = num.replace(re, "$1,$2$3")
return num;
}
alert(formatNum(-12345678.123));
alert(formatNum("12345678.123"));
alert(formatNum("10000000000000000000000000000000000000000"));
{
var str=numberStr;
var subs=new Array()
var newStr=""
for(var i=str.length,j=0;i>0;i-=3,j++)
subs[j]=str.substring(i,i-3)
subs.reverse()
for(var i=0;i<subs.length;i++)
newStr+=(i==subs.length-1)?subs[i]:subs[i]+","
return newStr
}
小数点后面不要加逗号,怎样改正则表达式?
<SCRIPT LANGUAGE="JavaScript">
<!--
function formatNum(num) //将数字转换成三位逗号分隔的样式
{
if(!/^(\+|-)?(\d+)(\.\d+)?$/.test(num)){alert("wrong!"); return num;}
var a = RegExp.$1, b = RegExp.$2, c = RegExp.$3;
var re = new RegExp().compile("(\\d)(\\d{3})(,|$)");
while(re.test(b)) b = b.replace(re, "$1,$2$3");
return a +""+ b +""+ c;
}
alert(formatNum(-12345678.123456));
alert(formatNum("12345678.1237805"));
alert(formatNum("10000000000000000000000000000000000000000"));
//-->
</SCRIPT>