我想验证可以是短日期格式或长日期格式的日期。 例如:对于某些有效日期。
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
的子字符串,它是一个有效日期。
为避免子字符串匹配,您可以使用 anchor 作为:
/^\d{1,2}[\/-]\d{1,2}[\/-]\d{4}$/
但是上面再次允许诸如 00/00/0000
和 29/02/NON_LEAP_YEAR
这样的日期是无效的。
因此最好使用库函数来进行此验证。
我找到了一个这样的图书馆:datajs
关于javascript - 在 javascript 中以 mm/dd/yyyy 格式验证短日期和长日期的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3827312/