javascript - 在 javascript 中以 mm/dd/yyyy 格式验证短日期和长日期的正则表达式

标签 javascript regex datetime

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

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/000029/02/NON_LEAP_YEAR 这样的日期是无效的。

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

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

关于javascript - 在 javascript 中以 mm/dd/yyyy 格式验证短日期和长日期的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3827312/

相关文章:

php - preg_replace 没有按预期工作

javascript - 用于在聊天中标记玩家的正则表达式

javascript - React 中输入字段失去焦点

JavaScript 倒计时

java - 如何查找字符串中的字符模式偏移量

python - 在 matplotlib 中绘制 Pandas 日期

php - DateTime::createFromFormat 未按预期工作

python - 在 python 中转换带有时区的 ISO 8601 日期格式

javascript - Owl Carousel 不工作,没有错误,div 消失了

javascript - 需要一些关于 jQuery DOMready 的解释