从正则表达式组中删除字符

4
目标:我想将一个数字从格式“10.234,56”转换为“10234.56”。
使用这种简单的方法几乎可以实现我们的目标。
/([\d\.]+),(\d\d)/ => '\1.\2'

问题在于匹配的第一组(当然)仍然包含'.'字符。
因此问题是:
1. 是否有可能从组中排除一个字符? 2. 如何使用单个正则表达式解决这个问题?
(我知道如果不使用单个正则表达式,这是一个微不足道的问题)

由于实践中数字在这种情况下有些受限,因此我最终使用 /(\d*).?(\d*).?(\d+),(\d\d)/ => '\1\2\3.\4'。 - tcurdt
3个回答

1
为什么要使用正则表达式呢?只需用''替换'.',然后再用'.'替换','即可。

1
"我知道如果不使用单个正则表达式,这是一个微不足道的问题。" - tcurdt

0

看起来似乎没有办法做到这一点,我选择了更简单的方法

由于在实践中数字在该用例中有些受限,因此我最终使用了/(\d*).?(\d*).?(\d+),(\d\d)/ => '\1\2\3.\4'


0

请用Rubular替换掉这些点:

/\.(?=[\d.]+,\d\d)/ => ''

如果您只想删除看起来像千位分隔符的点(Rubular):

/\.(?=\d{3}(?:\.\d{3})*,\d\d)/

点号也需要替换成逗号。 - tcurdt
@tucrudt:我怀疑在一般情况下(长度不受限制的数字)无法用单个正则表达式完成。 - Mark Byers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接