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

Javascript 将货币名称转换为货币符号,javascript,jquery,Javascript,Jquery,我需要快速解决方案将货币名称转换为货币符号 就像我有GBP一样,我想通过小javascript/jquery代码将其转换成英镑符号。数据是完全动态的 我不能使用任何像currenyformat这样的插件 正在寻找快速帮助。您可以使用JSON将代码与符号匹配,下面是一个JSON: 这样做: var currency_symbols = { 'USD': '$', // US Dollar 'EUR': '€', // Euro 'CRC': '₡', // Costa R

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

就像我有GBP一样,我想通过小javascript/jquery代码将其转换成英镑符号。数据是完全动态的

我不能使用任何像
currenyformat
这样的插件


正在寻找快速帮助。

您可以使用JSON将代码与符号匹配,下面是一个JSON:

这样做:

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]);
}

注意:并非所有货币都有符号。只有上面列出的货币才有真正的符号。

添加了代码样本。当然,这些不是唯一的货币符号。例如,俄罗斯卢布:'₽',这是更普遍的:a=0;a、 toLocaleString(“en”,{style:“currency”,currency:“EUR”}).replace(“0.00”,即“)@Gottfried不幸的是,这并非在所有情况下都能正常工作。有些货币没有小数位,比如日元,因此
replace(“0.00”),将不匹配
,您将留下“¥0”。强制使用小数位数似乎有效,但可能还有更多我不知道的边缘情况。例如:
a.toLocaleString(“en”,“style:“currency”,currency:“EUR”,minimumFractionDigits:2,maximumFractionDigits:2})。替换(“0.00”,“2”)
将生成正确的“¥”,以防有人像我一样偶然发现这篇文章,我建议使用@Gottfried评论中的解决方案。我将其与
regex
一起使用,以说明使用3位小数或无小数的货币(如
JPY
或其他任何小数位数的货币)以及
作为分隔符的货币。我的解决方案是
a=0;a、 toLocaleString(“en”,{style:“currency”,currency:“EUR”})。替换(/\d+([,.]\d+)?/g,”)
当然@Android3000已经提出了一个解决方案,但是对于以
作为分隔符的货币,它不起作用。如果浏览器中已经存在映射,请使用单一的真实来源。请参阅@Gottfried的答案,但请明智地对待您的假设。另请参见有关不带符号的货币(如果符号是两个字符,也可以是两个字符):
Number().toLocaleString(未定义,{style:“currency”,currency:“ZAR}.split(”)[0]
无需字符串解析即可执行此操作的正确方法:
const getSymbol=currency=>{const symbol=new Intl.NumberFormat('en',{style:'currency',currency}).formattopart(val).find(x=>x.type==='currency');返回符号&&symbol.value;}
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]);
}