使用javascript将印度货币转换为俄罗斯货币

时间:2016-07-07 10:07:33

标签: javascript regex

我正在使用此正则表达式将数字转换为显示为俄语货币格式。 这是我的代码

PlayNowDescriptionItem

但是这段代码转换成这样:“12.000.50”,而不是它应该像“12.000,50”。

有没有人知道他,如何解决这个问题? 感谢

2 个答案:

答案 0 :(得分:4)

price.replace(/(\.|,)/g, function(x){return {',': '.', '.': ','}[x]})

答案 1 :(得分:1)

PHPJS团队可以使用一个名为number_format()的函数,该函数从PHP分支到Javascript。

function number_format (number, decimals, decPoint, thousandsSep) {

  number = (number + '').replace(/[^0-9+\-Ee.]/g, '')
  var n = !isFinite(+number) ? 0 : +number
  var prec = !isFinite(+decimals) ? 0 : Math.abs(decimals)
  var sep = (typeof thousandsSep === 'undefined') ? ',' : thousandsSep
  var dec = (typeof decPoint === 'undefined') ? '.' : decPoint
  var s = ''

  var toFixedFix = function (n, prec) {
    var k = Math.pow(10, prec)
    return '' + (Math.round(n * k) / k)
      .toFixed(prec)
  }

  // @todo: for IE parseFloat(0.55).toFixed(0) = 0;
  s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.')
  if (s[0].length > 3) {
    s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep)
  }
  if ((s[1] || '').length < prec) {
    s[1] = s[1] || ''
    s[1] += new Array(prec - s[1].length + 1).join('0')
  }

  return s.join(dec)
}

你可以像这样使用它:

 var number = 19883.50;
 var formatted = number_format(number, 2, ".", ",");

段:

function number_format (number, decimals, decPoint, thousandsSep) {

  number = (number + '').replace(/[^0-9+\-Ee.]/g, '')
  var n = !isFinite(+number) ? 0 : +number
  var prec = !isFinite(+decimals) ? 0 : Math.abs(decimals)
  var sep = (typeof thousandsSep === 'undefined') ? ',' : thousandsSep
  var dec = (typeof decPoint === 'undefined') ? '.' : decPoint
  var s = ''

  var toFixedFix = function (n, prec) {
    var k = Math.pow(10, prec)
    return '' + (Math.round(n * k) / k)
    .toFixed(prec)
  }

  // @todo: for IE parseFloat(0.55).toFixed(0) = 0;
  s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.')
  if (s[0].length > 3) {
    s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep)
  }
  if ((s[1] || '').length < prec) {
    s[1] = s[1] || ''
    s[1] += new Array(prec - s[1].length + 1).join('0')
  }

  return s.join(dec)
}






var number = 19883.50;
var formatted = number_format(number, 2, ",", ".");

console.log(formatted);