正则表达式只接受 2 个位置之后
本文关键字:位置 之后 正则表达式 | 更新日期: 2023-09-27 17:56:19
嗨,我需要所有这些可能的情况都有效
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}
(对于零到六位数字之间)。如果您至少想要一个数字,那么它将是 {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.0
,但拒绝.
、1.
和(空数)。
根据您的所有要求尝试此操作
^('d{0,6})('.'d{1,2})?$