我想出了这个正则表达式来验证一个数字,它可以有最大长度-13(包括小数点),最大小数点数-3,整数最大长度-12。
^(\d{1,12}([.]\d{1,1})?|\d{1,11}([.]\d{1,2})?|\d{1,10}([.]\d{1,3})?)$
有人能告诉我,我的方法是否正确或给我一个更好的解决方案?
答案 0 :(得分:3)
这也有效:
^(?=.{1,13}$)(\d{1,12})(\.\d{1,3})?$
使用正面向前看以匹配整个字符串长度是可以的。 然后它使用一组来匹配1到12位数 然后有一个可选组,用于匹配小数后跟1-3位数。
编辑:简化,因为规则不允许13位整数部分