提问人:nuhkoca 提问时间:11/3/2023 最后编辑:Wiktor Stribiżewnuhkoca 更新时间:11/3/2023 访问量:98
允许在第一个 0 之后使用实时输入验证正则表达式显示更多数字
Allow more digit after the first 0 with live input validation regex
问:
我有一个正则表达式,可以在我这边进行一些验证。是的
^(?![.,])-?[1-9]*?0?[,.]?([,.]\d+)?$
这个正则表达式基本上验证了一个数字
- 如果它以 0 开头,则后面必须跟一个逗号或点
- 有效 => 0.12 或 0,456
- 无效 => 012.90
- 一行不能有多个点或逗号,例如 12..45
- 只能是一个数字、一个逗号或一个点,例如 123、123.45 或 123,45
- 不能以点或逗号开头和结尾
这个正则表达式非常适合上述几点,但我被困在一种情况下,即我不能输入像 100 或 101 这样的数字,因为它仍然需要我一个点或逗号,因为正则表达式仍然将任何零视为第一规则。我该如何解决?
答:
1赞
Wiktor Stribiżew
11/3/2023
#1
你可以使用
^(?:0|[1-9]\d*)(?:[.,]\d*)?$
请参阅正则表达式演示。
细节:
^
- 字符串的开头(?:0|[1-9]\d*)
-也0
-零|
-或[1-9]\d*
- 1 到 9 位数字,然后是任何零位或更多位数字
(?:[.,]\d*)?
- 逗号或点的可选序列,然后是零位或多位数字。$
- 字符串的结尾。
上一个:为什么这些数字不相等?
下一个:在文件的每一行前面加上前导零
评论
can only a digit or a comma or dot
0
^(?:0(?:[,.]\d*)?|[1-9]\d*(?:[,.]\d*)?)$