簡體   English   中英

如何使用給定格式格式化數字字符串?

[英]How can I format a numeric string with the given format?

我需要創建一個接受格式字符串和數字字符串並以給定格式輸出數字字符串的函數。

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做到這一點?

編輯:格式字符串可能會變化“ ###,##。#”或“ ##,###。###”等

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM