javascript 我想更改货币格式,例如用点替换逗号(,),用逗号替换点

cld4siwp  于 2023-02-18  发布在  Java
关注(0)|答案(4)|浏览(156)

我想更改货币格式,如用点替换逗号(,)和用逗号替换点。如22,22,22.00到22.22.22,00目前我使用的JavaScript包名称jquery-formatcurrency.js它是美国格式做得很好,但我想另一个区域格式,如欧洲格式。我试图更改包代码,但它是行不通的。

$('.formatCurrency').formatCurrency();
xoshrz7s

xoshrz7s1#

你可以遍历每个字符串,然后改变你想要的,如下所示:

var s = "22,22,22.00";
var next = "";
for (const c of s) {
   if(c == ".")
      next += ",";
   else if(c == ",")
      next += ".";
   else
      next += c;
}
console.log(next);
ddrv8njm

ddrv8njm2#

要根据指定的区域设置设置数字的格式,请使用toLocaleString()方法

const number = 222222.00;
const formatted = number.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }).replace(/\./g, ',').replace(/,/g, '.');

console.log(formatted);
pcww981p

pcww981p3#

使用Intl API格式化货币或任何其他数字。
MDN参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat
样本来自MDN页面:

const number = 123456.789;

// request a currency format
console.log(
  new Intl.NumberFormat("de-DE", {
    style: "currency",
    currency: "EUR"
  }).format(
    number,
  ),
);
// 123.456,79 €

// the Japanese yen doesn't use a minor unit
console.log(
  new Intl.NumberFormat("ja-JP", {
    style: "currency",
    currency: "JPY"
  }).format(
    number,
  ),
);
// ¥123,457

// limit to three significant digits
console.log(
  new Intl.NumberFormat("en-IN", {
    maximumSignificantDigits: 3
  }).format(
    number,
  ),
);
// 1,23,000
6kkfgxo0

6kkfgxo04#

您可以使用正则表达式..

let 
  nStr_a = '22,22,22.00'
, nStr_b =  nStr_a.replace(/(\,|\.)/g, x=>({',':'.','.':','})[x])
  ;
console.log(nStr_b);

相关问题