Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript将印度货币转换为俄罗斯货币_Javascript_Regex - Fatal编程技术网

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

使用javascript将印度货币转换为俄罗斯货币,javascript,regex,Javascript,Regex,我用这个正则表达式把数字转换成俄罗斯货币格式。 这是我的密码 var price = "12,000.50"; price = price.replace(/[,]+/g, ''); return price.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1."); 但是这个代码是这样转换的:“12.000.50”,而不是像“12.000,50” 有人知道他的,怎么解决这个问题吗? 谢谢您可以使用一个名为number\u format()的函数,该函数由团队从PH

我用这个正则表达式把数字转换成俄罗斯货币格式。 这是我的密码

var price = "12,000.50";
price = price.replace(/[,]+/g, '');
return price.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1.");
但是这个代码是这样转换的:“12.000.50”,而不是像“12.000,50”

有人知道他的,怎么解决这个问题吗?
谢谢

您可以使用一个名为
number\u format()
的函数,该函数由团队从PHP派生到Javascript

片段:
函数编号\u格式(数字、小数、小数点、千分位数){
编号=(编号+“”)。替换(/[^0-9+\-Ee.]/g“”)
变量n=!isFinite(+数字)?0:+数字
var prec=!isFinite(+小数)?0:Math.abs(小数)
var sep=(typeof thounandssep==‘未定义’?’,’:thounandssep
变量dec=(decPoint的类型==‘未定义’?’:decPoint
变量s=“”
var toFixedFix=函数(n,prec){
var k=数学功率(10,prec)
返回“”+(数学四舍五入(n*k)/k)
.toFixed(prec)
}
//@todo:for IE parseFloat(0.55)。toFixed(0)=0;
s=(prec?toFixedFix(n,prec):“”+数学四舍五入(n)).split(“”)
如果(s[0]。长度>3){
s[0]=s[0]。替换(/\B(?=(?:\d{3})+(?!\d))/g,sep)
}
如果((s[1]| |“)。长度console.log(格式化)您可以使用一个名为
number\u format()
的函数,该函数由团队从PHP派生到Javascript

片段:
函数编号\u格式(数字、小数、小数点、千分位数){
编号=(编号+“”)。替换(/[^0-9+\-Ee.]/g“”)
变量n=!isFinite(+数字)?0:+数字
var prec=!isFinite(+小数)?0:Math.abs(小数)
var sep=(typeof thounandssep==‘未定义’?’,’:thounandssep
变量dec=(decPoint的类型==‘未定义’?’:decPoint
变量s=“”
var toFixedFix=函数(n,prec){
var k=数学功率(10,prec)
返回“”+(数学四舍五入(n*k)/k)
.toFixed(prec)
}
//@todo:for IE parseFloat(0.55)。toFixed(0)=0;
s=(prec?toFixedFix(n,prec):“”+数学四舍五入(n)).split(“”)
如果(s[0]。长度>3){
s[0]=s[0]。替换(/\B(?=(?:\d{3})+(?!\d))/g,sep)
}
如果((s[1]| |“)。长度console.log(格式化)太好了。你能用同样的方法把俄语转换成美国语吗?i、 从“1.00.000,50”到“1,00000.50”?如果您有许多地区,我建议您查看一些数字解析|格式化库。DigitalJS是一个很好的例子,我假设3==many:)拥有经过良好测试的防弹解决方案总是更好的。除非你有一些严格的要求不使用NIH代码。是的,但在我的情况下,我只有vise a versa。太好了。你能用同样的方法把俄语转换成美国语吗?i、 从“1.00.000,50”到“1,00000.50”?如果您有许多地区,我建议您查看一些数字解析|格式化库。DigitalJS是一个很好的例子,我假设3==many:)拥有经过良好测试的防弹解决方案总是更好的。除非你有一些严格的要求不使用NIH代码。是的,但在我的情况下,我只有vise a versa。
price.replace(/(\.|,)/g, function(x){return {',': '.', '.': ','}[x]})
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, ".", ",");