Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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/0/unity3d/4.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 - Fatal编程技术网

如何使用正则表达式在Javascript中验证日期?

如何使用正则表达式在Javascript中验证日期?,javascript,regex,Javascript,Regex,我需要使用JavaScript函数来验证用户在输入字段中输入的日期。有效日期格式必须为yyyyMMdd。如何编写正则表达式代码来验证此输入日期格式?此日期格式有效:2019/12/01和2019-12-01。不允许使用所有其他格式。这是一个有趣的主题。。。它从简单的解决方案开始: \d{4}(-|\/)\d{2}\1\d{2} 在这个解决方案中,我们有4个数字比-或/,比2个数字,比之前使用的分隔符-或/多2个数字。。。哪种解决方案比 \d{4}[-\/]\d{2}[-\/]\d{2} 因为

我需要使用JavaScript函数来验证用户在输入字段中输入的日期。有效日期格式必须为yyyyMMdd。如何编写正则表达式代码来验证此输入日期格式?此日期格式有效:2019/12/01和2019-12-01。不允许使用所有其他格式。

这是一个有趣的主题。。。它从简单的解决方案开始:

\d{4}(-|\/)\d{2}\1\d{2}
在这个解决方案中,我们有4个数字比-或/,比2个数字,比之前使用的分隔符-或/多2个数字。。。哪种解决方案比

\d{4}[-\/]\d{2}[-\/]\d{2}
因为在第二个2019-12/01将通过验证,在第一个将不会通过

但当你就这个话题进行更多的头脑风暴时。。。您可能希望验证比这更智能,所以下一步将是

[12]\d{3}(-|\/)\d{2}\1\d{2}
在这种情况下,一年必须从1或2开始。。。天空是你的极限,你还将包括什么

很抱歉写得太多,但验证总是一个有趣的话题

我需要使用JavaScript函数来验证用户输入的日期 内部输入字段

如果可以的话,最好改用

工作示例:


为什么你希望用户输入所有这些数据,除非你真的在测试他们输入日期的能力?只需创建一个日期字段。您需要的不仅仅是正则表达式-因为月份的天数不同,而一个月的天数也不一致。。。因此,当然,可以使用正则表达式进行初步验证/^\d{4}[/-]0[1-9]| 1[0-2][/-]0[1-9]|[12]\d{124; 3[01]$/但是,您需要代码验证28以上的日期,因为这是不一致的地方——而且由于您将使用代码进行验证,您也可以只使用一个简单的/^\d{4}[/-]\d\d[/-]\d\d$/对于使用正则表达式进行的prelim validationdate验证有点棘手。您应该仔细检查两种格式,然后对值进行验证。也就是说,2019-02-30根据格式是有效的,但由于2019年2月没有30天,或者,你知道,从来没有过,所以无法通过任何其他检查?