我试图用点逗号和逗号替换所有点,并想知道这样做的最佳做法是什么.如果我按顺序执行,那么步骤将相互覆盖.
例如:
1,234.56(替换逗号后) – > 1.234.56(替换点后) – > 1,234,56
这显然不是我想要的.
我猜的一个选择是分裂角色然后使用相反的角色加入.有没有更容易/更好的方法来做到这一点?
解决方法
你可以使用回调
"1,234.56".replace(/[.,]/g,function(x) { return x == ',' ? '.' : ','; });
如果您要替换两个以上的字符,可以使用地图创建一个便利功能来进行替换
function swap(str,swaps) { var reg = new RegExp('['+Object.keys(swaps).join('')+']','g'); return str.replace(reg,function(x) { return swaps[x] }); } var map = { '.':',',':'.' } var result = swap("1,234.56",map); // 1.234,56