我已经尝试了一些自己的正则表达式,但总是有一些错误或其他错误。
我的要求是获得 8,2 位十进制的正则表达式,例如 000,000.00
- 6位整数部分
- 小数部分的 2 位数字
无效的如下
- 2,2
- 2,2.2.2
- 12,12
- 1,1,1,1
有效的如下
- 12
- 1,000.00
- 220,000.00
- 173747
更新:这是为了检查用户的有效输入。分数部分或逗号不是强制性的。
小数点前最多 8 位数字
我想出了一个相当复杂的正则表达式(假设数字具有强制性,
)
^d{1,3}((?:(?<=d),(?=d{3})d{3})){0,2}(.d{2})?$
正则表达式演示
您可以在上面的正则表达式中添加 or 条件以匹配非逗号模式
^(d{1,3}((?:(?<=d),(?=d{3})d{3})){0,2}|^d{0,8})(.d{2})?$
爪哇正则表达式
^(\d{1,3}((?:(?<=\d),(?=\d{3})\d{3})){0,2}|\d{0,8})(\.\d{2})?$
Ideone 演示
小数点前最多 6 位数字
^(d{1,3}((?:(?<=d),(?=d{3})d{3})){0,1}|^d{0,6})(.d{2})?$
试试这个正则表达式:
/^(?:(?:0|[1-9][0-9]{0,2})(?:,[0-9]{3})*(?:.(?:[0-9]{3},)*[0-9]{1,3})?|[1-9][0-9]*(?:.[0-9]*)?)$/
见正则表达式101