<script>
function f(v){
var re=/(\d+)(\d{3})/,s=v.toString();
while(re.test(s))s=s.replace(re,"$1,$2");
return s;
}
alert(f(12345678.123));
</script>

解决方案 »

  1.   

    当然前提是str是一个合法的数字<script>
    str="1000";
    re=/\./;
    if(re.test(str))
    str=str.replace(/\.0*$/,".00")
    else
    str+=".00";
    alert(str);
    </script>
      

  2.   

    fason,那个好像小数点后不会保留2位,而且整数不会在小数点后自动加两个0,帮帮忙再改一下啊!
      

  3.   

    <script>
    //################
    //                                                                 数字格式化函数
    //  用法:本函数用来格式化数字。
    //  参数:num(数值型):要进行格式化的数值型变量;
    // decimalNum(整型) :要保留的小数位数;
    // bolLeadingZero (布尔型:true或 false):对-1<num<1之间的数是否要添加前导数字0;
    // bolParens (布尔型:true或 false):在负号后是否使用小括号;
    // bolCommas (布尔型:true或 false):是否用“,”隔开数字位。
    //  返回值:经过格式化的数字字符串。
    //#################################################################################################
    //  下面是例子:
    alert(FormatNumber(5450.5435345254644654,2,true,true,true))function FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas)

            if (isNaN(parseInt(num))) return "NaN"; var tmpNum = num;
    var iSign = num < 0 ? -1 : 1; // 得到数字符号

    // 调整小数点位数到给定的数字。
    tmpNum *= Math.pow(10,decimalNum);
    tmpNum = Math.round(Math.abs(tmpNum))
    tmpNum /= Math.pow(10,decimalNum);
    tmpNum *= iSign; // 重新调整符号


    // 把数值型转换成字符对象
    var tmpNumStr = new String(tmpNum); // 处理是否有前导0
    if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
    if (num > 0)
    tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
    else
    tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);

    //处理是否有逗号
    if (bolCommas && (num >= 1000 || num <= -1000)) {
    var iStart = tmpNumStr.indexOf(".");
    if (iStart < 0)
    iStart = tmpNumStr.length; iStart -= 3;
    while (iStart >= 1) {
    tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
    iStart -= 3;
    }
    } // 处理是否有括号
    if (bolParens && num < 0)
    tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")"; return tmpNumStr; // 返回格式化后字符串
    }
    </script>
      

  4.   

    function putamount(obj)
    {
         var valt=obj.value;
         var val2="",val3="";
         var pos=0,len=0;
         var tch;
         var val1="";
         for(var rc=0;rc<obj.value.length;rc++)if(obj.value.charAt(rc)!=",")val1=val1+obj.value.charAt(rc);
         val1=trim_zero(val1);
         while(true){
             if(val1.charAt(0)!='+')break;
             val1=val1.substring(1);
         }
         if(val1.indexOf("+")>0||val1.indexOf("-")>0||val1.indexOf("*")>0
             ||val1.indexOf("/")>0 || val1.indexOf("%")>0){
             val1=""+eval(val1);
         }
         pos=val1.indexOf(",");
         if(pos<0){
             pos=val1.indexOf(".");
             if(pos<0)val2=".00";
             else {
                 val2=val1.substr(pos);
                 if(val2.length<2)val2+="00";
                 if(val2.length<3)val2+="0";
                 if(val2.length>3)val2=val2.substr(0,3);
                 val1=val1.substr(0,pos);
             }
             if(obj.flag=="A"){
                 while(true){
                     len=val1.length;
                     if(len<4){
                         if(val2.length<4)val1=val1+val2;
                         else val1=val1+","+val2;
                         break;
                     }
                     val3=val1.substr(len-3);
                     val1=val1.substr(0,len-3);
                     if(val2.length<4)val3=val3+val2;
                     else val3=val3+","+val2;
                     val2=val3;
                 }
             }
             else val1=val1+val2;
         }
         else {
             pos=val1.indexOf(".");
             if(pos<0)val1=val1+".00";
         }
         if(val1.charAt(0)=="-" && val1.charAt(1)==",")val1="-"+val1.substring(2);
         var i=0;
         val2="";
         while(true){
             if((obj.size-val1.length-i)<0)break;
             val2+=" ";
             i++;
         }
         obj.value=val2+val1;
         return true;
    }
      

  5.   

    value.length报错!为空或不是对象!
      

  6.   

    借花献佛:
    <script  language=javascript>  
    function  commafy(num){  
               num  =  num+"";  
               var  re=/(-?\d+)(\d{3})/  
               while(re.test(num)){  
                           num=num.replace(re,"$1,$2")  
               }  
               return  num;  
    }  
    </script>  
    <input  type=button  value="commafy"  onclick="alert(commafy(123456789.01))">
      

  7.   

    问题已解决,多谢大家!特别感谢fason,使用了他提供的函数,现贴出来供大家参考:
    function f(v)
    {
    var re=/(\d+)(\d{3})/,s=v.toString();
    while(re.test(s))s=s.replace(re,"$1,$2");
    return s;
    }var str=1000.035;
    str=str.toFixed(2);
    var res=str.substr(str.indexOf(".")+1,2);
    str=str.substr(0,str.length-3);
    str=f(str);
    str=str+"."+res;
    alert(str);