JavaScript格式化金额及格式化输出

格式化金额的函数

/*
 * 格式化金额,
 * num为十进制Number类型的原值,
 * n为保留的小数位数
 * return 格式化后的金额字符串
 */
function formatNum(num, n){
    
    var numStr = num.toString(),
        pointIndex = numStr.indexOf('.'),
        beforePoint,
        afterPoint;
    if(pointIndex < 0){
        beforePoint = numStr;
        afterPoint = '';
    }else{
        beforePoint = numStr.substring(0, pointIndex);
        if(typeof n == 'undefined'){
            afterPoint = numStr.substring(pointIndex);
        }else{
            afterPoint = numStr.substring(pointIndex, pointIndex + n + 1);
        }
    }
    var re = /(-?\d+)(\d{3})/;
    while(re.test(beforePoint)){
        beforePoint = beforePoint.replace(re,"$1,$2");
    }
    return beforePoint + afterPoint;
}

格式化输出

/*
 * 格式化输出,
 * str为输入的字符串,变量用{}包括
 * obj为参数对象
 */
function formatStr(str, obj){
    for(var name in obj){
        str = str.split('{' + name + '}').join(obj[name]);
    }
    return str;
}

另一种格式化输出

/*
 * 格式化输出,
 * str为输入的字符串,变量用{}包括
 * arr为参数数组
 */
function formatStr(str, arr){
    var i,len = arr.length;
    for(i = 0; i < len; i++){
        str = str.split('{' + i + '}').join(arr[i]);
    }
    return str;
}

  

  

posted @ 2011-10-19 17:19  realwall  阅读(1296)  评论(0编辑  收藏  举报