我想验证日期,可以是短日期格式也可以是长日期格式。
例如:对于某些有效日期。
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/0000
和29/02/NON_LEAP_YEAR
。因此最好使用库函数进行此验证。
我能够找到一个这样的库:datajs