支持多种货币格式的正则表达式

本文关键字:正则表达式 格式 货币 支持 | 更新日期: 2024-10-23 16:25:16

我有一个正则表达式,需要验证文本是否为支持的货币格式。

^('$|€|Fr.|£|kr|R?)'s*((([1-9](,'d{3}){3})|([1-9]'d{0,2}(,'d{3}){0,2})|('d{1,10}))('.'d{1,2})?)'s*('$|€|Fr.|£|kr|R?)$

我支持以下内容:

  1. US Dollar (10000.00 or 10,000.00 or $10,000.00)
  2. Euro (10000.00 or 10,000.00 or €10,000.00)
  3. Francs (10000.00 or 10'000.00 or Fr.10'000.00)
  4. Pounds (10000.00 or 10'000.00 or £10,000.00)
  5. Kroner (10000,00 or 10'000.00 or 10.000,00 kr)
  6. Rand (10000.00 or 10,000.00 or R10,000.00)

我更新了它以支持以上所有格式。

^('$|€|Fr.|£|kr|R?)'s*(((([1-9](,'d{3}){3})|([1-9]'d{0,2}(,'d{3}){0,2})|('d{1,10}))('.'d{1,2})?)|((([1-9](.'d{3}){3})|([1-9]'d{0,2}(.'d{3}){0,2})|('d{1,10}))(','d{1,2})?)|((([1-9](''d{3}){3})|([1-9]'d{0,2}(''d{3}){0,2})|('d{1,10}))('.'d{1,2})?))'s*('$|€|Fr.|£|kr|R?)$

它看起来很好,但我不知道为什么当我有这些格式时,它也接受小数点后3位。

100,000.012
200.000,002
100'000.001

我只接受小数点后两位。

支持多种货币格式的正则表达式

我认为您需要删除?在''d{1,2}中)?