Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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中反转现有的正则表达式?_Javascript_Regex_Time - Fatal编程技术网

如何在javascript中反转现有的正则表达式?

如何在javascript中反转现有的正则表达式?,javascript,regex,time,Javascript,Regex,Time,我创建了一个正则表达式来验证时间,如下所示:([01]?\d|2[0-3]):[0-5]\d 匹配TRUE:08:00,09:00,9:00,13:00,23:59 匹配错误:10.00,24:00,25:30,23:62,afdasdasd,ten 问题: 如何反转javascript正则表达式以验证是否不时间 注意-我已经在堆栈上看到了几种方法,但似乎无法使它们适用于我的表达式,因为我不理解反转表达式应该如何工作 答复 最简单的解决方案是反转javascript语句,而不是反转正则表达

我创建了一个正则表达式来验证时间,如下所示:
([01]?\d|2[0-3]):[0-5]\d

匹配TRUE:
08:00
09:00
9:00
13:00
23:59

匹配错误:
10.00
24:00
25:30
23:62
afdasdasd
ten


问题: 如何反转javascript正则表达式以验证是否时间

注意-我已经在堆栈上看到了几种方法,但似乎无法使它们适用于我的表达式,因为我不理解反转表达式应该如何工作


答复 最简单的解决方案是反转javascript语句,而不是反转正则表达式本身

if(!(/^([01]?\d|2[0-3]):[0-5]\d)/.test(obj.value))


只需添加!即可创建if NOT语句。

正则表达式通常用于捕获某些特定条件-越具体,正则表达式越好。您需要的是一个非常广泛的条件来匹配,因为几乎所有条件都不会被视为“时间”(空白、特殊字符、字母字符等)


正如注释中所建议的,对于您试图实现的目标,查找时间然后检查(并否定)正则表达式的结果更有意义。

正如我在注释中提到的,更好的方法是否定测试,而不是创建与任何非时间匹配的新regexp

但是,如果确实需要regexp,可以使用负前瞻来匹配非时间的开始:

/^(?!([01]?\d|2[0-3]):[0-5]\d$)/
演示:


注意,我锚定了regexp(^和$),这可能无法满足您的需要。

不要反转正则表达式,如果检查它,则反转
。否定验证结果似乎比创建任何非时间的正则表达式更简单。我考虑过这一点,但很好奇人们的想法。感谢您的建议。在该网站上,您已链接d它似乎与非时间的语句不匹配,如OP所问…@EladStern:如何?似乎对我有效--可能是编辑过的?看起来匹配的只是非时间行前的空格,而不是实际语句。@EladStern是的,它与整个语句不匹配,只是语句的开头如果需要匹配语句,只需在先行部分后面添加一个
*
,如