如何在js中将点替换为逗号和将逗号替换为点

How to replace dots to commas and commas to dots in js

我有一个简单的问题,我想将字符串中的点替换为逗号,将逗号替换为点,示例:

var example1 = "10.499,99" // What I have
var result1 = "10,499.49" // What I need

var example2 = "99.999.999.999,99" // What I have
var result2 = "99,999,999,999.99" // What I need

我已经尝试使用此替换:

value.replace(/,/g, '.')

但它只会将所有逗号更改为点。

有什么想法吗?

使用

value.replace(".", ",");
value.replace(".",",")

不能同时进行。如果您使用替换函数将其从点 (.) -> 逗号 (,) 更改,您将获得新字符串,其中逗号被点替换。但是当您再次尝试反之时,每个逗号将被替换为一个点。

所以你可以做的是用不同的 string/symbol 替换逗号,比如 replace(/,/g , "__") 然后用你在上面使用的相同表达式替换点 replace(/\./g, ',') 然后替换那些我们示例中的新字符串/(__) 到点(.) replace(/__/g, '.')

var example2 = "99.999.999.999,99" example2.replace(/,/g , "__").replace(/\./g, ',').replace(/__/g, '.') //输出:'99,999,999,999.99'

快乐编码

使用将函数作为第二个参数的 replaceAll 函数的变体。用它来替换所有出现的点或逗号。该函数将选择用逗号替换点,用点替换逗号。

function switchDotsAndCommas(s) {

  function switcher(match) {
    // Switch dot with comma and vice versa
    return (match == ',') ? '.' : ',';
  }

  // Replace all occurrences of either dot or comma.
  // Use function switcher to decide what to replace them with.
  return s.replaceAll(/\.|\,/g, switcher);
}


console.log(switchDotsAndCommas('10.499,99'));
console.log(switchDotsAndCommas('99,999,999,999.99'));