本文介绍了正则表达式可以在javascript中以mm / dd / yyyy格式验证短和长日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想验证可以是短日期格式或长日期格式的日期。
例如:某些有效日期。

I wanna validate date which can be either in short date format or long date format.eg: for some of the valid date.

12/05/2010,12/05/10,12-05-10,12-05- 2010

12/05/2010 , 12/05/10 , 12-05-10, 12-05-2010

var reLong = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{4}\b/;
var reShort = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{2}\b/;
var valid = (reLong.test(entry)) || (reShort.test(entry));
if(valid)
{
return true;
}
else
{
return false;
}

但是,当我尝试将无效日期设为12时,此当前的正则表达式将失败/ 05 / 20-0

but this current regular expression fails when i try to give an invalid date as 12/05/20-0

推荐答案

这是因为 12/05/20 您输入的子串 12/05 / 20-0 是有效的日期。

This happens because 12/05/20 which is a substring of your input 12/05/20-0 is a valid date.

为避免子串匹配,您可以使用锚点:

To avoid substring matches you can use anchors as:

/^\d{1,2}[\/-]\d{1,2}[\/-]\d{4}$/

但是,再次上述允许日期如 00/00/0000 29 / 02 / NON_LEAP_YEAR 无效。

But again the above allows dates such as 00/00/0000 and 29/02/NON_LEAP_YEAR which are invalid.

所以它更好的使用库函数做这个验证。

So its better to use a library function do this validation.

我找到了一个这样的图书馆:

I was able to find one such library: datajs

这篇关于正则表达式可以在javascript中以mm / dd / yyyy格式验证短和长日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-24 22:50