JavaScript + String使用curreny转换为数字格式

时间:2017-08-22 05:11:30

标签: javascript

我正在使用第三方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>

注意:货币不是静态的,它会根据输入而改变。所以需要根据输入显示值。

我知道我没有写正确的代码,请任何人都可以提供解决方案/建议

3 个答案:

答案 0 :(得分:0)

我就是这样做的:

var sampleInput = '&amp;pound;200000';
// you can add more currency equivalent
//here I'd used UTF-8 Decimal value of the currency character.
var curr = {"pound":"&#8356;", "peso": "&#8369"};
//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('&amp;pound;','£');

  return symbol+(Number(nums)).toLocaleString();
}

用途

var sampleInput = '&amp;pound;200000';
console.log(convertToCurrency(sampleInput));

答案 2 :(得分:0)

我要解码文字两次

var text='&amp;pound;200000';
var elem = document.createElement('textarea');
elem.innerHTML = text;
var decoded1 = elem.value;
elem.innerHTML = decoded1;
var decoded2 = elem.value;

Textarea有这个很好的功能,它会将它的innerhtml解码为它的价值。运行此代码后,变量decode2将包含更正的字符串。好吧,无论如何,在我的环境中。我希望这会有所帮助。