gpt4 book ai didi

javascript - 如何将货币符号与货币值分开并保留小数点和逗号?

转载 作者:行者123 更新时间:2023-11-30 11:33:12 26 4
gpt4 key购买 nike

我正在尝试获取 toLocaleString 的输出并对其进行一些额外的格式化。我从这段代码开始:

displayAmount = 1234.56789
currencyFormatted = displayAmount.toLocaleString('en-US', {style: 'currency', currency: 'USD'});

currencyFormatted 的值变为:

$1,234.57

不错,但出于各种原因,我希望能够在 $1 之间添加一个空格,并在其周围包裹一个 span。所以期望的输出是:

<span>$</span> 1,234.57

所以我添加了这段代码,它来自 other answers on Stack Overflow :

symbolSeparated = currencyFormatted.split(/(\d+)/).filter(Boolean);
myElement.innerHTML = "<span>" + symbolSeparated[0] + "</span> " + symbolSeparated[1];

但是,我得到了:

<span>$</span> 1

我意识到我的拆分是将逗号和小数视为文本,并在那里进行拆分。我尝试了一些其他的正则表达式 found ,如 /[^0-9\.]+/g,但它似乎大多只是失败并且 symbolSeparated[1] 将是未定义的。

在任何情况下,它都不必是正则表达式,它可以是函数的任意组合或其他任何东西。问题是,如何将货币符号与数值分开,同时保留小数点和逗号?

请注意,货币符号保证长度为一个字符(否则我可以只使用substring())。据我所知,它可以是 1 到 3 个字符。

此外,不依赖于 jQuery 的答案是首选。

最佳答案

这应该可以解决您的问题。正则表达式/^(\D*)(.*)/ 查找字符串前面的所有非数字字符,将其保存在第一个匹配组中,然后将剩余的第二个匹配组中的字符串。

const regex = /^(\D*)(.*)/;

function x() {
displayAmount = 1234.56789
currencyFormatted = displayAmount.toLocaleString('en-US', {style: 'currency', currency: 'USD'});


m = regex.exec(currencyFormatted );
myElement.innerHTML = "<span>" + m[1] + "</span> " + m[2];
}

关于javascript - 如何将货币符号与货币值分开并保留小数点和逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45498702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com