2015-07-19 2 views
0

Мне нужно создать функцию, которая принимает строку формата и числовую строку и выводит числовую строку в данном формате.Как я могу форматировать числовую строку с заданным форматом?

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?

Edit: Строка формата может варьироваться "###, ## #." Или "##, ### ###." И т.д.

+0

Возможный дубликат [Javascript Thousand Separator/string format] (http://stackoverflow.com/questions/3753483/javascript-thousand-separator-string-format) – Emissary

ответ

Смежные вопросы