У меня есть такая строка:
Поздравляем {0}, который выиграл {1} {2: #, ## 0. ##} в {3}
И массив данных примерно так:
["Join", "USD", 10000, "Poker round 10"];
Я написал функция для форматирования этой строки, но моя проблема в том, что цифровой формат не может быть обнаружен.
String.prototype.format = function (arg) {
var rep_fn = undefined;
if (typeof arg == "object") {
rep_fn = function (m, k) { return arg[k]; };
}
else {
var args = arguments;
rep_fn = function (m, k) { return args[parseInt(k)]; };
}
return this.replace(/\{(\w+)\}/g, rep_fn);
};
var fm = "Congratulation to {0} who won {1} {2:#,##0.##} in {3}";
var data = ["Join", "USD", 10000, "Poker round 10"];
console.log(fm.format(data));
Текущий результат:
Поздравляем присоединиться, кто выиграл USD {2: #, ## 0. ##} в раунде игры в покер 10
Ожидайте:
Поздравляем присоединиться, кто выиграл 10 000,00 долларов США в раунде игры в покер 10
У кого-нибудь есть идеальный способ помочь мне решить эту проблему? Большое спасибо.