正则表达式 - 最多 10 位小数的数字验证 (0.01 - 100.0000000000)
Regex - Validation of numeric with up to 10 decimal places (0.01 - 100.0000000000)
我很好奇这个正则表达式是否可以缩短。它应该允许十位数字。
/^(?!0+(?:\.0+)?$)(\d{1,2}\.\d{1,10}|\d{1,2}|(100)|(100\.00)|(100\.0000000000)|(100\.000000000)|(100\.00000000)|(100\.0000000)|(100\.000000)|(100\.00000)|(100\.0000)|(100\.0000)|(100\.000)|(100\.0))$/
你需要使用
/^(?![0.]+$)(?:\d{1,2}(?:\.\d{1,10})?|100(?:\.0{1,10})?)$/
参见regex demo。
详情:
^
- 字符串开头
(?![0.]+$)
- 不允许只有 0
and/or .
个字符直到字符串结尾
(?:
- 两者之一
\d{1,2}(?:\.\d{1,10})?
- 一位或两位数字,然后是可选的 .
和一到十位数字
|
- 或者
100(?:\.0{1,10})?
- 100
然后是可选的 .
和一到十个 0
个字符
)
- 小组结束
$
- 字符串结尾。
我很好奇这个正则表达式是否可以缩短。它应该允许十位数字。
/^(?!0+(?:\.0+)?$)(\d{1,2}\.\d{1,10}|\d{1,2}|(100)|(100\.00)|(100\.0000000000)|(100\.000000000)|(100\.00000000)|(100\.0000000)|(100\.000000)|(100\.00000)|(100\.0000)|(100\.0000)|(100\.000)|(100\.0))$/
你需要使用
/^(?![0.]+$)(?:\d{1,2}(?:\.\d{1,10})?|100(?:\.0{1,10})?)$/
参见regex demo。
详情:
^
- 字符串开头(?![0.]+$)
- 不允许只有0
and/or.
个字符直到字符串结尾(?:
- 两者之一\d{1,2}(?:\.\d{1,10})?
- 一位或两位数字,然后是可选的.
和一到十位数字
|
- 或者100(?:\.0{1,10})?
-100
然后是可选的.
和一到十个0
个字符
)
- 小组结束$
- 字符串结尾。