我想验证日期,可以是短日期格式也可以是长日期格式。
例如:对于某些有效日期。

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时,此当前正则表达式失败

最佳答案

发生这种情况是因为作为输入12/05/20子字符串的12/05/20-0是有效日期。

为了避免子字符串匹配,可以将锚用作:

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


但是以上内容再次允许无效的日期,例如00/00/000029/02/NON_LEAP_YEAR

因此最好使用库函数进行此验证。

我能够找到一个这样的库:datajs

07-24 09:49
查看更多