使用正则表达式从字符串数量中删除千位分隔符的最佳方法

use*_*510 6 javascript regex replace separator

我有包含金额的变量,并希望删除(美国)千位分隔符,但也必须涵盖可能存在非美国格式化金额的情况,其中逗号用于小数而不是数千我不喜欢的数字我想替换逗号.

例子:

  • 1,234,567.00需要成为1234567.00
  • 1,234.00需要变成1234.00
    但是
  • 1.234.567,00需要保持不变,因为不是US格式(即逗号在这里用于小数)
  • 1.234,00需要保持不变,因为不是US格式(即逗号在这里用于小数)

我正在考虑使用以下但不确定它,因为我对Regex很新:

myVar.replace(/(\d+),(?=\d{3}(\D|$))/g, "$1");
Run Code Online (Sandbox Code Playgroud)

什么是最好的解决方案?注意:我只需要覆盖正常数量,如上面的例子,没有特殊情况,如字母/数字组合或1,2,3等.

sp0*_*00m 9

这个可能适合您的需求:

,(?=[\d,]*\.\d{2}\b)
Run Code Online (Sandbox Code Playgroud)

正则表达式可视化

Debuggex演示


hon*_*n2a 5

if (string.match(/\.\d{2}$/) {
    string = string.replace(',', '');
}
Run Code Online (Sandbox Code Playgroud)

或者

string.replace(/,(?=.*\.\d+)/g, '');
Run Code Online (Sandbox Code Playgroud)