我有包含金额的变量,并希望删除(美国)千位分隔符,但也必须涵盖可能存在非美国格式化金额的情况,其中逗号用于小数而不是数千位我不想替换逗号。
示例:
我正在考虑使用以下内容但不确定,因为我对Regex很新:
myVar.replace(/(\d+),(?=\d{3}(\D|$))/g, "$1");
这里最好的解决方案是什么?注意:我只需要像上面的例子那样覆盖正常数量,不需要像字母/数字组合那样的特殊情况或1,2,3等等。
答案 0 :(得分:8)
答案 1 :(得分:1)
用空字符串替换/,(?=\d*[\.,])/g
?
答案 2 :(得分:1)
myVar = myVar.replace(/([。,])(\ d \ d \ d \ D | \ d \ d \ d $)/ g,'$ 2');
删除期间。或逗号,当用作千分隔符时。
答案 3 :(得分:0)
if (string.match(/\.\d{2}$/) {
string = string.replace(',', '');
}
或
string.replace(/,(?=.*\.\d+)/g, '');
答案 4 :(得分:0)
您可以使用replace()
方法删除所有逗号。它们将被替换为空字符串。我正在使用带有expahead断言的reg exp来检测逗号后面是否跟着三个数字,如果给定的逗号将被删除。
string.replace(/,(?=\d{3})/g, '')
示例:
'12,345,678.90'.replace(/,(?=\d{3})/g, '')
// '12345678.90'
'1,23,456.78'.replace(/,(?=\d{3})/g, '')
// '1,23456.78'
'$1,234.56'.replace(/,(?=\d{3})/g, '')
// '$1234.56'