欧元格式的正则表达式

Regular Expression For EURO Format

我希望仅接受以下形式的欧元格式。

三位数字与“.”分开。

我找到了这个表达式,但不符合我的方式:

^(0|(([1-9]{1}|[1-9]{1}[0-9]{1}|[1-9]{1}[0-9]{2}){1}(\ [0-9]{3}){0,})),(([0-9]{2})|\-\-)([\ ]{1})(€|EUR|EURO){1}$

我希望它完全像下面这样:

1.123,45

1,23

1.234.567,45

0,56

我希望两位数的美分是强制性的。

谢谢

-?(\d{1,3})(\.\d{3})*(,\d{2})? (€|EURO?)

这将捕获数字。你永远不需要 {1} 因为这是默认假设。也不需要转义空格。

你可以试试

^(?!0\d)\d{1,3}(?:\.\d{3})*,\d{2}$
  • ^ 字符串开头
  • (?!0\d) 负前瞻,确保没有像 01,25 这样的前导 0,如果允许则删除它
  • \d{1,3} 1 到 3 位数
  • (?:\.\d{3})* 后跟任何出现的文本,例如 .123
  • ,\d{2} 后跟 2 位小数,必填。如果您希望它是可选的,请将其替换为 (?:,\d{2})?
  • $ 字符串结尾

test cases