EURO格式的正则表达式



我希望以下表格只接受欧元格式。

三位带">";隔离。

我发现了这个表达式,但不能按我的方式工作:

^(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

我希望两位数的分是必须的。

你可以试试

^(?!0d)d{1,3}(?:.d{3})*,d{2}$
  • ^字符串的开头
  • (?!0d)阴性向前看,确保没有像01,25这样的前导0,如果允许,将其删除
  • d{1,3}1 ~ 3位
  • (?:.d{3})*后跟.123
  • 之类的文本
  • ,d{2}后面跟着2位十进制数字,必选。如果您希望它是可选的,将其替换为(?:,d{2})?
  • $字符串的结尾

查看测试用例

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

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

最新更新