Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式匹配m:ss以进行输入验证_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式匹配m:ss以进行输入验证

Javascript 正则表达式匹配m:ss以进行输入验证,javascript,regex,Javascript,Regex,我一直在努力创建一个正则表达式来实现以下功能: 分钟内只有一个数字(0到9) 秒数只有两个数字(00到59) 必须采用m:ss格式 到目前为止,我有:^(?([0]{0}?\d):)?([0-5]{1}?\d)$ 然而,例如case 00似乎正在通过,它不应该通过,因为它不是m:ss格式。除非我遗漏了一些东西,否则这应该非常简单 ^[0-9]:[0-5][0-9]$ var regex=/^[0-9]:[0-5][0-9]$/; 变量输入=$('input'); input.keyup(

我一直在努力创建一个正则表达式来实现以下功能:

  • 分钟内只有一个数字(0到9)
  • 秒数只有两个数字(00到59)
  • 必须采用m:ss格式
到目前为止,我有:
^(?([0]{0}?\d):)?([0-5]{1}?\d)$


然而,例如case 00似乎正在通过,它不应该通过,因为它不是m:ss格式。

除非我遗漏了一些东西,否则这应该非常简单

^[0-9]:[0-5][0-9]$
var regex=/^[0-9]:[0-5][0-9]$/;
变量输入=$('input');
input.keyup(函数(){
if(regex.test(input.val()))
input.removeClass('error');
其他的
input.addClass('error');
});
input.error{
颜色:红色;
}

您的正则表达式--有一个
0{0}?
使引擎匹配
0
正好零次(此标记被忽略)。它还具有冗余的
{1}
(因为
[0-5]
将与
0
5
之间的数字精确匹配一次)。请注意,没有理由将单个字符放入字符类(如
[0]
),这可能会在以后需要调整模式时导致问题。更重要的是,您的正则表达式包含一个可选组
(?:([0]{0}?\d):)?
,可以匹配一次或零次。因此,您的正则表达式允许像
56
这样的输入

您可以使用以下正则表达式:

/^\d:[0-5]\d$/

var rx=/^\d:[0-5]\d$/;
var测试=['0:00'、'1:34'、'156'、'3:67'、'45:55'、'56'、'4:344'];
对于(变量i=0;i”;
}
输入:有效{
颜色:绿色;
}
输入:无效{
颜色:红色;
}



正则表达式是:
/^\d:[0-5]\d$/

[“2:12”,//好的
//其余部分无效:
“2:60”、“09:12”、“13:2”、“123:1”、“123:23”、“123:456”]。forEach(函数){
if(s.match(/^\d:[0-5]\d$/){
警报;
}

});
你打算与
[0]{0}匹配什么?
/(\d\:\d\d)/
试试这个?@Jai认为正则表达式与我提到的3点不匹配。@用户3632710已经回答了下面的问题,所以我没有更新我的评论。我为你的正则表达式和我的建议都添加了一个演示。请随意测试并查看差异。@WiktorStribiżew,因为它是javascriot,所以我最好给出一个片段,而不是第三方链接。我添加了我在regex101.com中使用的字符串的演示。谢谢,@Tushar@musefan,因为它是javascript,所以最好是提供一个片段,而不是第三方link@musefan,一个明确的优点是,他们是在家里,所以他们不会随着时间而迷失,第三方链接可以得到deleted@Gavriel:是的,我明白,但在这种情况下,它只是支持答案。其实不需要任何东西,只有正则表达式才能使答案变得有用。我已经添加了一个