Javascript 正则表达式货币格式

Javascript 正则表达式货币格式,javascript,regex,regex-negation,Javascript,Regex,Regex Negation,我有一个字符串,其中包含带文本的货币。我应该以浮动格式获取货币 转换应如何工作的示例 Cash € 1,00 => 1.00 Cash € 10,00 => 10.00 Cash $ 10.00 => 10.00 Maestro € 1,0000 => 1.0000 Visa € 1.000,00 => 1000.00 Cash € 1.000.000,00 => 1000000.00 Ca

我有一个字符串,其中包含带文本的货币。我应该以浮动格式获取货币

转换应如何工作的示例

Cash € 1,00          => 1.00
Cash € 10,00         => 10.00
Cash $ 10.00         => 10.00
Maestro € 1,0000     => 1.0000
Visa € 1.000,00      => 1000.00
Cash € 1.000.000,00  => 1000000.00
Cash $ 1,000,000.00  => 1000000.00
现在我分两步来做。第一个表达式仅过滤出
0-9

var regex = /(\d|\.|,)/g
value = value.match(regex).join('');
我正在努力学习我的第二个正则表达式

var regex2 = /(\.|,)(?=.*(\.|,))/g;
这个匹配除最后一个之外的每个点或逗号


如何使用第二个正则表达式来做相反的操作?因此,不要匹配
,而是匹配除这些之外的所有内容。

好吧,我采取了稍微不同的方法

我想评论中的一些人误解了我,我收到的字符串可以用美国符号或欧洲符号书写。例如:

American: 1,345.20 = European 1.345,20
可以用作千位分隔符或十进制分隔符

我把所有的号码分组,然后加入他们,除了最后一个。然后我在中间放一个点,把最后一个点加到浮点数上

var regex=/([0-9]+)/g;
var arrValues=value.match(regex);
如果(arrValues.length==1)value.push(0);
var newValue=parseFloat(u0.initial(arrValues.join)(“”)+.+0.last(arrValues));
if语句用于防止没有
的数字转换为
0.value
类似
10=>0.10


旁注:我曾经做过一些事情。

据我所知,你只需要写:
/([0-9]+)/g
…用这个表达式,我失去了我的逗号。你的字符串都是这种格式的吗?我的字符串包含单词+货币符号+美式/欧式符号的金额。无特定顺序为什么不使用第二个正则表达式用空字符串替换所有匹配的点或逗号,并在第三步中用点替换逗号?