我写了一个脚本,可以在每个第三个字符后面添加一个","。再看一遍,我意识到客户简报说它需要从后面计数,而不是从前面计数。
所以3000美元应该变成3000美元。目前,我的脚本使其为$300.00(忽略$,因为它不是字符串的一部分(
这是我的脚本:
value.match(/.{1,3}/g).join(',')
请有人对我如何更新以获得期望的结果有什么建议吗?或者也许有什么建议可以用不同的方式来做?
如有任何建议,将不胜感激
也许Number.prototype.toLocaleString
可以来救援?
const amount = `$ 3000`;
const amountNumeric = +amount.replace(/[^d]/, "");
console.log(amount.replace(/(d+)/, amountNumeric.toLocaleString("US-us")));
// for fun: as oneliner
const toLocaleAmount = (amount, locale = "US-us") =>
`${amount.replace(/d+|./g, "")}${(+amount.match(/(d+)/g).join(".")).toLocaleString(locale)}`
console.log(toLocaleAmount("$ 3000"));
console.log(toLocaleAmount("€ 32200.04", "FR-fr"));
console.log(toLocaleAmount("¥ 121009.98"));
console.log(toLocaleAmount("€ 2321.25", "NL-nl"));
.as-console-wrapper { top: 0; max-height: 100% !important; }