Javascript 如何匹配至少必须出现一个数字的2个数字(不同范围)序列?

Javascript 如何匹配至少必须出现一个数字的2个数字(不同范围)序列?,javascript,regex,angular,Javascript,Regex,Angular,我有下面的正则表达式(在Angular 2中使用我会使用 [0-5]?[0-9] 匹配从00到59的任意两位数字 看 这里, [0-5]?-与0到5的1或0位数字匹配的字符类 [0-9]-与0到9的1位数字匹配的字符类 注意:由于第一个[0-5]?包含一个0,数字中可以有一个前导0。如果不需要前导零,请将第一个字符类替换为[1-5]? 要仅将它们作为独立数字进行匹配,请使用单词边界:\b[0-5]?[0-9]\b 若要仅匹配由这些数字组成的整个字符串,请使用^/$锚定:^[0-5]?[0-

我有下面的正则表达式(在Angular 2中使用我会使用

[0-5]?[0-9]
匹配从
00
59
的任意两位数字

这里,

  • [0-5]?
    -与
    0
    5
    的1或0位数字匹配的字符类
  • [0-9]
    -与
    0
    9
    的1位数字匹配的字符类
注意:由于第一个
[0-5]?
包含一个
0
,数字中可以有一个前导
0
。如果不需要前导零,请将第一个字符类替换为
[1-5]?

要仅将它们作为独立数字进行匹配,请使用单词边界:
\b[0-5]?[0-9]\b


若要仅匹配由这些数字组成的整个字符串,请使用
^
/
$
锚定:
^[0-5]?[0-9]$
若要匹配0-59范围内的数字,仅第一个字符应为可选字符。还应使用单词边界断言来防止其匹配3位以上的数字:

\b[1-5]?[0-9]\b

什么是有效输入和无效输入?请澄清。也许,你想要
/[0-5]?[0-9]/
?试试
[0-5]?[0-9]
。看,是的,似乎有效!谢谢(现在不能接受)@dragonnl你想匹配
00
01
02
,等等?我添加了regex的变体并解释了它们(我希望如此)。如果有任何疑问,请随时发表评论。是的,也是00。它有效:)(感谢您的解释)您能澄清“独立”数字的含义吗?(当从HTML输入中获取时,它总是一个字符串,不是吗?)你的答案与@Wiktor的答案有什么不同?这对我来说非常有效me@dragonmnl事实上,我是第一个发布这篇文章的,我想他在5分钟的宽限期内看到我的后对他的文章进行了编辑。我不介意谁先回答:)他给出了一个很好的解释,\b与3+位数字无关(即使输入类型=数字,输入中的数字总是字符串)。但是我投了赞成票!实际上,我是在不看帖子的情况下补充我的问题。这个答案在我更新我的答案前39秒出现,尽管我后来继续更新我的答案。因此,这是一个有效的备选答案。@dragonnl如果字符串中出现一个数字,如
159
,您希望它仍然与
59
匹配吗?这就是
\b
所阻止的。
\b[1-5]?[0-9]\b