首页 > 解决方案 > 正则表达式使用 javascript 将数字转换为巴西货币

问题描述

我需要将100000之类的值转换为巴西货币格式(Real)1.000,00,并且我正在使用 javascript。

那将是这种模式。

0,00
1,00
10,00
100,00
1.000,00

我设法使用这个表达式创建了小数。

if (v.indexOf('.') === -1) {
    v = v.replace(/([\d]+)/, '$1,00');
  }

现在,当我的值高于 1000,00(即 1.000,00)时,我无法分离。

我正在使用调用该函数并将值写入另一个字段(总计)的 keyup,并且该函数完成将数字转换为“雷亚尔”的所有工作

我做了这个功能

String.prototype.formatMoney = function () {
  let v = this;
   
  if (v.indexOf('.') === -1) {
    v = v.replace(/([\d]+)/, '$1,00');
  }

  v = v.replace(/([\d]+)\.([\d]{1})$/, '$1,$20');
  v = v.replace(/([\d]+)\.([\d]{2})$/, '$1,$2');
  console.log(v);

  return v;
};

我的正则表达式知识很薄弱,有人可以帮助我吗?

标签: javascriptregexreplace

解决方案


推荐阅读