Js将字符串转换为正确的价格格式

时间:2017-12-14 11:39:40

标签: javascript jquery

我需要将字符串转换为价格格式。

例如

  • 150 = 150.00
  • 1000 = 1'000.00
  • 25500 = 25'500.00
  • 1000.80 = 1'000.80等

我编写代码但不确定它是否合适:

function insert(str, index, value) {
  return str.substr(0, index) + value + str.substr(index);

}

function convert(n) {
  n = n.toString();
  var length = n.length;
  if (length < 4) {
    n = insert(n, length, '.00');
  } else if (length === 4) {
    n = insert(n, 1, "'");
    n = insert(n, length + 1, '.00');

  } else if (length > 4) {
    var floatFlag = false;
    if (n.indexOf('.') > -1 || n.indexOf(',') > -1) {
      floatFlag = true;
      n = n.replace(/,/g, '.');

    }
    var thouthandNumer = n / 1000;
    thouthandNumer = thouthandNumer | 0;
    n = n.replace(thouthandNumer, thouthandNumer + "'");
    if (!floatFlag) {
      n = insert(n, length + 1, '.00');
    }
  }
}
var n = 15000
convert(n); //return 15'000.00

如何以正确的方式转换字符串?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

使用Number.toLocaleString()

&#13;
&#13;
let x = 25500;
console.log(x.toLocaleString('en-us', {minimumFractionDigits: 2}));
&#13;
&#13;
&#13;