将货币名称转换为货币符号

ric*_*dey 14 javascript jquery

我需要快速解决方案将货币名称转换为货币符号.

就像我有GBP我想通过小的javascript/jquery代码转换成Pound符号.数据完全是动态的.

我不能使用任何插件currenyformat.

寻求快速帮助.

Vin*_*.AI 36

做这个:

var currency_symbols = {
    'USD': '$', // US Dollar
    'EUR': '€', // Euro
    'CRC': '?', // Costa Rican Colón
    'GBP': '£', // British Pound Sterling
    'ILS': '?', // Israeli New Sheqel
    'INR': '?', // Indian Rupee
    'JPY': '¥', // Japanese Yen
    'KRW': '?', // South Korean Won
    'NGN': '?', // Nigerian Naira
    'PHP': '?', // Philippine Peso
    'PLN': 'z?', // Polish Zloty
    'PYG': '?', // Paraguayan Guarani
    'THB': '?', // Thai Baht
    'UAH': '?', // Ukrainian Hryvnia
    'VND': '?', // Vietnamese Dong
};

var currency_name = 'INR';

if(currency_symbols[currency_name]!==undefined) {
    alert(currency_symbols[currency_name]);
}
Run Code Online (Sandbox Code Playgroud)

注意:并非每种货币都有符号.只有上面列出的货币才有真实符号.

  • 这更普遍:a = 0; a.toLocaleString("en",{style:"currency",currency:"EUR"}).replace("0.00","") (14认同)
  • 当然,这些不是唯一的货币符号。俄罗斯卢布例如:'₽', (5认同)
  • @Gottfried不幸的是,这并不适用于所有情况.有些货币没有像日元那样的小数位,所以`replace("0.00","")`将不匹配,你将留下"¥0".强制小数位似乎有效,但可能会有更多我不知道的边缘情况.示例:`a.toLocaleString("en",{style:"currency",货币:"EUR",minimumFractionDigits:2,maximumFractionDigits:2}).replace("0.00","")`将导致正确的" ¥" (3认同)
  • 无论货币小数点分隔符如何,这都有效: `new Intl.NumberFormat('en', {style: 'currency',currency:'USD',}).formatToParts("1").find(part=>part.type ="货币").value;` (3认同)
  • 以防万一有人像我一样偶然发现此帖子,我建议使用@Gottfried的评论中的解决方案。我将其与“ regex”一起使用,以计算使用小数点后3位或不使用小数点(例如“ JPY”或其他任意小数位数)和“。”或“,”作为分隔符的货币。我的解决方案是`a = 0; a.toLocaleString(“ en”,{style:“ currency”,currency:“ EUR”})。replace(/ \ d +([,。] \ d +)?/ g,“”);`当然建议使用@ Android3000已经有解决方案,但是它对以`,`为分隔符的货币不起作用 (2认同)