Javascript 如何匹配至少必须出现一个数字的2个数字(不同范围)序列?
我有下面的正则表达式(在Angular 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-
[0-5]?[0-9]
匹配从00
到59
的任意两位数字
看
这里,
-与[0-5]?
到0
的1或0位数字匹配的字符类5
-与[0-9]
到0
的1位数字匹配的字符类9
[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