我有以下正则表达式(在Angular 2< - Typescript中使用):
/[0-5]?[0-9]?/
出于某种原因,这可以完美匹配任何有效的分钟:1,2,...,59 (即即使没有写入数字,它的 有效..但这两个数字都是可选的!)
那么,为什么这项工作呢?如何匹配[0-5]或[0-9]或[0-5] [0-9]但不是空字符串?
有效输入为:0,1,2,3,....,59
我尝试使用{1,2},但这显然与 3个字符
相匹配答案 0 :(得分:2)
我用
[0-5]?[0-9]
匹配00
到59
的任意两位数字。
在这里,
[0-5]?
- 从0
到5
[0-9]
- 从0
到9
匹配1位数的字符类。 注意:由于第一个[0-5]?
包含0
,因此数字中可以显示前导0
。如果您不想要前导零,请将第一个字符类替换为[1-5]?
。
要仅将它们作为独立数字匹配,请使用字边界:\b[0-5]?[0-9]\b
。
要仅匹配由这些数字组成的整个字符串,请使用^
/ $
个锚点:^[0-5]?[0-9]$
答案 1 :(得分:1)