我正在使用第三方API,该API提供的响应提供了货币类型的值,
Sample Input : £200000
Expected Output: £200,000
我尝试更改格式,但无法实现输出。
var sampleInput = '£200000';
var x = convertCurrencyValue(sampleInput);
document.getElementById('test').innerHTML = x;
function convertCurrencyValue(input) {
var getValue = input.replace(/&/ig, "&");
var myValue=parseInt(getValue.replace( /^\D+/g, ''));
return myValue.toLocaleString();
}
<div id="test"> </div>
注意:货币不是静态的,它会根据输入而改变。所以需要根据输入显示值。
我知道我没有写正确的代码,请任何人都可以提供解决方案/建议
答案 0 :(得分:0)
我就是这样做的:
var sampleInput = '&pound;200000';
// you can add more currency equivalent
//here I'd used UTF-8 Decimal value of the currency character.
var curr = {"pound":"₤", "peso": "₱"};
//index 1 holds what currency, index 2 holds the amount
var inputArr = sampleInput.split(";");
var output = curr[inputArr[1]] + parseInt(inputArr[2]).toLocaleString();
div = document.querySelector("#test");
div.innerHTML = output;
我希望这会有所帮助。
答案 1 :(得分:0)
我为此写了一个函数。您可以使用此功能。
function convertToCurrency(input){
var nums= input.substring(input.lastIndexOf(';')+1);
var symbol= input.substring(0,input.lastIndexOf(';')+1)
.replace('&pound;','£');
return symbol+(Number(nums)).toLocaleString();
}
用途
var sampleInput = '&pound;200000';
console.log(convertToCurrency(sampleInput));
答案 2 :(得分:0)
我要解码文字两次
var text='&pound;200000';
var elem = document.createElement('textarea');
elem.innerHTML = text;
var decoded1 = elem.value;
elem.innerHTML = decoded1;
var decoded2 = elem.value;
Textarea有这个很好的功能,它会将它的innerhtml解码为它的价值。运行此代码后,变量decode2将包含更正的字符串。好吧,无论如何,在我的环境中。我希望这会有所帮助。