number validaiton - javascript正则表达式

时间:2016-10-15 04:28:04

标签: regex

我想出了这个正则表达式来验证一个数字,它可以有最大长度-13(包括小数点),最大小数点数-3,整数最大长度-12。

^(\d{1,12}([.]\d{1,1})?|\d{1,11}([.]\d{1,2})?|\d{1,10}([.]\d{1,3})?)$

有人能告诉我,我的方法是否正确或给我一个更好的解决方案?

1 个答案:

答案 0 :(得分:3)

这也有效:

^(?=.{1,13}$)(\d{1,12})(\.\d{1,3})?$

使用正面向前看以匹配整个字符串长度是可以的。 然后它使用一组来匹配1到12位数 然后有一个可选组,用于匹配小数后跟1-3位数。

编辑:简化,因为规则不允许13位整数部分