【发布时间】:2022-11-10 14:58:15
【问题描述】:
我认为有时我们都需要一个正则表达式来显示带有 2 位小数的数字,以显示世界上各种货币的货币。此正则表达式应仅允许 1 个点或逗号作为小数分隔符。并且只允许正数,并且数字不能以 0 开头。
目标:
- 点和逗号都可以用作小数分隔符
- 小数分隔符只能在一个数字中出现一次
- 数字不能以零开头
- 只允许正数
【问题讨论】:
标签: regex
我认为有时我们都需要一个正则表达式来显示带有 2 位小数的数字,以显示世界上各种货币的货币。此正则表达式应仅允许 1 个点或逗号作为小数分隔符。并且只允许正数,并且数字不能以 0 开头。
目标:
【问题讨论】:
标签: regex
我对这个困境的解决方案如下:^[1-9]d*([,.]d{2})?$
^[1-9] 告诉正则表达式一个数字需要以 1 到 9 开头
d* 告诉正则表达式,下一个需要是 0 到 9 之间的数字,并且可以匹配 0 次或更多次
([,.]d{2})?$ 告诉正则表达式可以有一个点或一个逗号,并且后面必须正好有 2 个数字。问号使其也是可选的,因此 100 或 100,00 或 100.00 都可以。所以正自然数或正2十进制数
这个正则表达式也可以很容易地编辑以支持带或不带 2 位小数的负数和正数。
【讨论】: