如何格式化具有给定格式的数字字符串?

时间:2015-07-19 12:46:33

标签: javascript formatting

我需要创建一个函数,它接受一个格式字符串和一个数字字符串,并以给定的格式输出数字字符串。

var format = "##,###.##";//The format string may vary "###,##.#" etc
var number = "1234.5";

我希望我的功能输出1,234.50

直到现在我得到了这么多

String.prototype.replaceAt=function(index, character) {
    return this.substr(0, index) + character + this.substr(index+character.length);
}
String.prototype.insert = function (index, string) {
  if (index > 0)
    return this.substring(0, index) + string + this.substring(index, this.length);
  else
    return string + this;
};
function formatString(format,number) {  
    var numeric = number.split(".")[0];
    var decimal = number.split(".")[1];
    var numericFormat = format.split(".")[0];
    numeric = numeric.split("").reverse().join("");
    numericFormat = numericFormat.split("").reverse().join("");
    for (var i = 0, len = numeric.length; i < len; i++) {
        if(numericFormat[i] === ',') {
            numeric = numeric.insert(i, ',');
            console.log(numeric);
        }
    }
    numeric = numeric.split("").reverse().join("");
    console.log(numeric);
    numeric = numeric + "."+ decimal;
    return numeric;
}

但这不准确吗?在纯JavaScript中有更好的方法吗?

编辑:格式字符串可能有所不同&#34; ###,##。#&#34;或&#34; ##,###。###&#34;等

1 个答案:

答案 0 :(得分:-1)

看看javascript-number-formatter。它可能满足您的需求。