【发布时间】:2020-03-09 16:57:55
【问题描述】:
我正在努力为以下标准编写 RegEx:
- 数字可以是正数/负数
- 可选 - 在开始时
- 小数点前 1 到 5 个数字之间
- 只有 2 位小数(可选)
- 阻止用户输入超过 1 。或 -
这是我尝试实现但对我不起作用的正则表达式。
^((-?[0-9]{1,5}(\.?){1,1}[0-9]{0,2})
它应该允许用户输入以下数字。
-1.12
12345
1
123
12.12
任何帮助将不胜感激!
【问题讨论】:
-
你有什么理由必须在一个正则表达式中进行所有这些检查吗?
-
也许
^-?\d{1,5}(?:\.\d{0,2})?$可以。 -
@WiktorStribiżew 你好 Wiktor,这适用于正数,但不允许我输入负数,我必须先输入正数,然后在开头添加减号。在我添加减号后删除数字时,它会同时删除第一个数字和减号 - 你知道这是为什么吗?
-
那就试试
^-?\d{0,5}(?:\.\d{0,2})?$ -
是的,或者如果允许后视,则使用
^-?\d{0,5}(?:(?<=\d)\.\d{0,2})?$。你可以使用lookbehinds吗?
标签: regex validation decimal user-input negative-number