Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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 JS正则表达式模式不起作用_Javascript_Regex - Fatal编程技术网

Javascript JS正则表达式模式不起作用

Javascript JS正则表达式模式不起作用,javascript,regex,Javascript,Regex,我正在使用此方法验证格式中的时间: HH:MM-HH:MM 但我总是收到虚假的 方法如下: var cadena="22:40-23:40"; var patron=/^(0[1-9]|1\d|2[0-3]):([0-5]\d)+-+(0[1-9]|1\d|2[0-3]):([0-5]\d)$/; if (patron.test(cadena)) alert('Correcto'); else alert('Incorrecto')

我正在使用此方法验证格式中的时间: HH:MM-HH:MM

但我总是收到虚假的

方法如下:

var cadena="22:40-23:40";
    var patron=/^(0[1-9]|1\d|2[0-3]):([0-5]\d)+-+(0[1-9]|1\d|2[0-3]):([0-5]\d)$/;
      if (patron.test(cadena))
        alert('Correcto');
      else
        alert('Incorrecto');
我怎样才能解决它

谢谢:)

解释

我想检查范围的正确格式:HH:MM-HH:MM(这里有两次) 我想检查“小时”是否有两个介于0-23之间的数字。和分钟,有两个介于0-59之间的数字


这两个时间都应该被划分为“-”来验证
HH:MM-HH:MM
您需要将
cadena
值设置为
HH:MM-HH:MM
,然后它工作:

var cadena=“22:40-10:15”;
var patron=/^(0[1-9]| 1\d | 2[0-3]):([0-5]\d)-+(0[1-9]| 1\d | 2[0-3]):([0-5]\d)$/;
if(用户测试(卡德纳))
警惕(“纠正”);
其他的
警惕(“不正确”);
cadena=“22:4440-10:15”;
if(用户测试(卡德纳))
警惕(“纠正”);
其他的

警惕(“不正确”)您的正则表达式需要一系列时间<代码>11:00-22:40
。你是说
/^(?[01]\d | 2[0-3]):[0-5]\d$/
?或者您想同时验证这两种方法吗?提示:当您的正则表达式变得太复杂时(对于一个人来说无法编写,对于其他人来说无法读取),拆分/解析和一些比较通常是更好的解决方案。您的模式要求它必须是
HH:MM-HH:MM
,但您只是传入
HH:MM
,所以它当然不匹配……亚伯拉罕,请您解释一下为什么您说您使用该模式来验证
HH:MM
?你的意图是什么?嗨!我想检查范围的正确格式:HH:MM-HH:MM(有两次)。我想检查“小时”在0-23和分钟之间有两个数字,在0-59之间有两个数字。这两个时间都应该被一个“-”分开。这
^(0[1-9]| 1\d | 2[0-3]):([0-5]\d)+(0[1-9]| 1\d | 2[0-3]):([0-5]\d)$
regex不验证
00:30-22:40
。它将验证
21:2323-11:33
。看。@WiktorStribiżew它现在有了。检查更新的正则表达式。@Abraham很乐意帮助您