Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.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/2/csharp/328.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 正则表达式帮助:向表达式添加24小时_Javascript_C#_Asp.net_Regex - Fatal编程技术网

Javascript 正则表达式帮助:向表达式添加24小时

Javascript 正则表达式帮助:向表达式添加24小时,javascript,c#,asp.net,regex,Javascript,C#,Asp.net,Regex,我有一个需要添加24小时时间格式的正则表达式: ^(((((0[13578])|([13578])|(1[02]))[\-\/\s]?((0[1-9])|([1-9])|([1-2][0-9])|(3[01])))|((([469])|(11))[\-\/\s]?((0[1-9])|([1-9])|([1-2][0-9])|(30)))|((02|2)[\-\/\s]?((0[1-9])|([1-9])|([1-2][0-9]))))[\-\/\s]?\d{4})(\s(((0[1-9])|([

我有一个需要添加24小时时间格式的正则表达式:

^(((((0[13578])|([13578])|(1[02]))[\-\/\s]?((0[1-9])|([1-9])|([1-2][0-9])|(3[01])))|((([469])|(11))[\-\/\s]?((0[1-9])|([1-9])|([1-2][0-9])|(30)))|((02|2)[\-\/\s]?((0[1-9])|([1-9])|([1-2][0-9]))))[\-\/\s]?\d{4})(\s(((0[1-9])|([1-9])|(1[0-2]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$
我该如何添加24小时时间格式。

TLDR:不要用正则表达式来处理它! 时间部分:

/(?:[01]\d|2[0-3]):[0-5]\d/
日期部分的基本尝试:

/(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12]\d|3[01])\/\d{4,}/
在部件正确验证的日期进行更高级的尝试,二月除外:

/(?:(?:0[13578]|1[02])\/(?:0[1-9]|[12]\d|3[01])|(?:0[2469]|11)\/(?:0[1-9]|[12]\d|30))\/\d{4,}/
更进一步,假设每年都是闰年:

/(?:(?:0[13578]|1[02])\/(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)\/(?:0[1-9]|[12]\d|30)|02\/(?:0[1-9]|[12]\d))\/\d{4,}/
可被4整除:

不可被100整除或不可被400整除:

闰年是:

/\d*(?:(?:(?!\d{2}00)(?=\d{2}(?:[13579][26]|[02468][048])))|(?=(?:[13579][26]|[02468][048])00))\d{4}(?!\d)/
仅在2月份有效:

/02\/(?:0[1-9]|1\d|2[0-8]|29(?=\/\d*(?:(?:(?!\d{2}00)(?=\d{2}(?:[13579][26]|[02468][048])))|(?=(?:[13579][26]|[02468][048])00))\d{4}(?!\d)))\/\d{4,}/
有效日期:

/(?:(?:0[13578]|1[02])\/(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)\/(?:0[1-9]|[12]\d|30)|02\/(?:0[1-9]|1\d|2[0-8]|29(?=\/\d*(?:(?:(?!\d{2}00)(?=\d{2}(?:[13579][26]|[02468][048])))|(?=(?:[13579][26]|[02468][048])00))\d{4}(?!\d))))\/\d{4,}/
现在一切都在一个地方

日期和时间: 这可以简化吗?绝对是

我会做吗?他妈的不

我认为信息是明确的——不要这样做!TLDR:别用正则表达式做这件事! 时间部分:

/(?:[01]\d|2[0-3]):[0-5]\d/
日期部分的基本尝试:

/(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12]\d|3[01])\/\d{4,}/
在部件正确验证的日期进行更高级的尝试,二月除外:

/(?:(?:0[13578]|1[02])\/(?:0[1-9]|[12]\d|3[01])|(?:0[2469]|11)\/(?:0[1-9]|[12]\d|30))\/\d{4,}/
更进一步,假设每年都是闰年:

/(?:(?:0[13578]|1[02])\/(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)\/(?:0[1-9]|[12]\d|30)|02\/(?:0[1-9]|[12]\d))\/\d{4,}/
可被4整除:

不可被100整除或不可被400整除:

闰年是:

/\d*(?:(?:(?!\d{2}00)(?=\d{2}(?:[13579][26]|[02468][048])))|(?=(?:[13579][26]|[02468][048])00))\d{4}(?!\d)/
仅在2月份有效:

/02\/(?:0[1-9]|1\d|2[0-8]|29(?=\/\d*(?:(?:(?!\d{2}00)(?=\d{2}(?:[13579][26]|[02468][048])))|(?=(?:[13579][26]|[02468][048])00))\d{4}(?!\d)))\/\d{4,}/
有效日期:

/(?:(?:0[13578]|1[02])\/(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)\/(?:0[1-9]|[12]\d|30)|02\/(?:0[1-9]|1\d|2[0-8]|29(?=\/\d*(?:(?:(?!\d{2}00)(?=\d{2}(?:[13579][26]|[02468][048])))|(?=(?:[13579][26]|[02468][048])00))\d{4}(?!\d))))\/\d{4,}/
现在一切都在一个地方

日期和时间: 这可以简化吗?绝对是

我会做吗?他妈的不



我认为信息是明确的——不要这样做!你能举例说明你希望匹配的字符串是什么样子吗?@ndn ex.12/30/2013 20:14,但不包括12/30/2013 24:00。使用正则表达式的日期是一个很大的禁忌。考虑闰年非常糟糕。你可能会在这里得到一些线索:不要使用正则表达式进行完整的日期验证。基本的健全性检查:月份在1到12之间,日期在1到31之间,年份在1800到2100之间是合理的。实际日期验证应该包括尝试通过编程语言将值转换为日期。您能举个例子说明您希望匹配的字符串是什么样子吗?@ndn ex.12/30/2013 20:14,但不包括12/30/2013 24:00。使用regex的日期是一个大禁忌。闰年的计算非常糟糕。您可能会在这里得到一些线索:不要使用正则表达式执行完整日期验证。基本的健全性检查:月份在1到12之间,日期在1到31之间,年份在1800到2100之间是合理的。实际日期验证应包括尝试通过编程语言将值转换为日期。同意环顾是处理闰年和月长的一种比单纯的交替好得多的方法。请加强建议不要使用正则表达式。解释一下原因。然后,在您提供的正则表达式之前发出一个强烈警告,表明它充满了错误,可能无法工作,将无法理解或维护,并且只能由盗版鼠标、擅离职守的阳光和愚蠢的开发人员使用。@ErikE,我认为开头和结尾的粗体大文本就足够了。很明显,为什么使用这个是个坏主意。顺便说一句,我敢让你尝试打破它!xdI认为粗体文本不够。人们总是越过警告。要让他们停下来,你必须解释原因。你不能让马喝水,但你应该先把它带到水里,而不是只是挥挥手,说水在山的某个地方。同意环顾是处理闰年和月长的一种比单纯的交替好得多的方法。请加强建议不要对正则表达式这样做。解释一下原因。然后,在您提供的正则表达式之前发出一个强烈警告,表明它充满了错误,可能无法工作,将无法理解或维护,并且只能由盗版鼠标、擅离职守的阳光和愚蠢的开发人员使用。@ErikE,我认为开头和结尾的粗体大文本就足够了。很明显,为什么使用这个是个坏主意。顺便说一句,我敢让你尝试打破它!xdI认为粗体文本不够。人们总是越过警告。要让他们停下来,你必须解释原因。你不能让马喝水,但你应该先把它带到水里,而不是只是挥手说水在山的某个地方。