正则表达式只接受2个地方
大家好我需要所有这些可能的情况才有效
123 123.1 123.12
我试过这个^[0-9]*\.[0-9]{2}$ or ^[0-9]*\.[0-9][0-9]$
但不起作用可以任何一个帮助我出去
试试这个:
^[0-9]*(\.[0-9]{1,2})?$
基于您的第二个示例,但允许一个或两个小数位,并使整个小数部分可选。
[编辑]
OP已经改变了问题的标准 – 见下面的评论。 他现在想要小数点前的数字只允许最多六位数,并要求我编辑适合的答案。
所需要的只是用{0,6}
替换*
(对于任意数量的数字)(对于0到6位数字)。 如果你想要至少一个数字,那么它将是{1,6}
。
这是修改后的正则表达式:
^[0-9]{0,6}(\.[0-9]{1,2})?$
试试……
^\d{1,6}(?:\.\d{1,2})?$
*按照建议编辑 ,使其无法捕获。
几乎搞定了……
^[0-9]*(\.[0-9]{1,2})?$
您可能还需要担心以点开头的数字,将没有任何数字的点视为无效,并拒绝空数字:
^(?:\d+|\d*\.\d{1,2})$
这接受1
, .1
但拒绝.
, 1.
。和(空号)。
根据您的所有要求尝试此操作
^(\d{0,6})(\.\d{1,2})?$