如何在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'));
我有一个简单的问题,我想将字符串中的点替换为逗号,将逗号替换为点,示例:
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'));