javascript - jQuery 全局化。将货币单位作为 C 格式的参数传递

标签 javascript localization currency-formatting jquery-globalization

我正在建立一个处理货币的多语言网站。我希望能够根据所选语言显示正确的货币格式。服务器端 PHP 的东西是轻而易举的。使用 PHP NumberFormatter 和 strftime 的组合,我已经能够正确设置货币和日期的格式。

但是,需要在客户端使用 JavaScript 进行相同程度的格式化。

我遇到了 Globalization(以前的 jQuery 插件),它看起来很有前途。

如果我想用美式英语显示美元值(value),我可以这样做:

jQuery.preferCulture("en-US");

// Formatting price
var price = jQuery.format(3899.888, "c");
//Assigning stock price to the control
jQuery("#price").html(price);

这将输出:

$3,899.89

在做的时候:

jQuery.preferCulture("fr-FR");

// Formatting price
var price = jQuery.format(3899.888, "c");
//Assigning stock price to the control
jQuery("#price").html(price);

输出:

3 899,89 €

看起来很完美。但是,我需要输出多种货币。因此,如果我选择“fr-FR”作为我的首选文化,我该如何输出,例如,像这样的美元值:

3 899,89 $

这样格式是法文,但值是美元。我已经查看过,但没有找到将货币符号作为参数传递的方法。

最佳答案

only documented way在 Globalize 中修改货币符号就是更改给定区域性的 numberFormat.currency.symbol 属性(在本例中为 fr-FR 区域性)。这会做你想做的事情,但这不是一个非常优雅的解决方案,你需要为每个语言环境手动构建一个正确符号表,并编写另一个方法来交换它们。 (注意:可以使用不同的区域设置标识符将第三个参数传递给 Globalize.format,但这只是使用该区域的文化设置来格式化数字。) culture definition syntax ,根本没有提供使用给定区域设置显示不同货币的规定。

如果您要看看其他地方,dojo/currency Dojo Toolkit 中的模块确实可以使用来自 Unicode Common Locale Data Repository 的数据来满足您的需要。确定如何在不同区域设置中表示各种货币。因此,您可以将语言环境设置为 fr,编写 currency.format(3899.888, {currency: "USD"}),它将以正确的方式输出美元货币法语语言环境的格式。

关于javascript - jQuery 全局化。将货币单位作为 C 格式的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17324496/

相关文章:

javascript - 在 JSX 点击中传递数据的正确方法

javascript - HTML 代码中的 Python

javascript - 如何使用垂直或水平运算符在 Vega 中连接多个 View ?

python - 处理没有四舍五入、两位小数和千位分隔符的货币的通用方法

javascript - 如何在 JavaScript 中使用货币和相对于语言环境来格式化一个大数字(由字符串表示)?

javascript - 如何在弹出窗口时聚焦facebox

不同语言环境中的 Java 堆栈跟踪

algorithm - 三边测量和定位点 (x,y,z)

ios - 将 localizable.strings 提交到存储库

java - 为货币格式化 JTable 列