需要帮助使用javascript验证日期是否在过去
need help validating if a date is in the past using javascript
嗨,我目前正忙于如何划分regex日期,然后测试输入的日期是否在过去。如果是的话,我想提醒一下。
我知道我需要如何拼接我的正则表达式,但我不确定如何做到这一点,任何帮助都将不胜感激。下面是我的脚本,到目前为止,它是一个相当长的正则表达式,但它涵盖了包括闰年在内的所有内容,但正如我所说,我知道需要通过substr或splice将其分解。
//start of datefield
var dateformat=/^(?:(?:31'/(?:0[13578]|1[02])|(?:29|30)'/(?:0[13-9]|1[012])|(?:0[1-9]|1'd|2[0-8])'/(?:0[1-9]|1[0-2]))'/[2-9]'d{3}|29'/02'/(?:[2-9]'d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[3579][26])00))$/;
if (!date.match(dateformat))
{
alert("format incorrect use dd/mm/yyyy make sure you are entering correct days to the month remember 30 days have september, april, june & november, only 28 days in february unless leap year next is 2016");
return false;
}
//end date field
简单
date = "12/11/2009";
if(new Date(date) < new Date()){
// a
} else {
// b
}
使用正则表达式来确定日期是有效的,还是在其他时间之前或之后不是最简单的方法。将字符串转换为日期对象并进行测试要容易得多。
因此,解析字符串以创建一个日期对象,然后从那里开始。您不应该将日期字符串的解析留给日期对象,因为它主要依赖于实现(ECMA-262指定了ISO8601的一个版本,但并非所有使用中的浏览器都支持它)。因此,如果你的格式是d/m/y,你可以做:
function isDateHistory(s) {
s = s.split('/');
return (new Date(s[2], --s[1], s[0])) < (new Date());
}
alert(isDateHistory('15/6/2013')); // true
alert(isDateHistory('15/7/2013')); // false
您也可以使用验证日期
function validateDate(dateString) {
var s = dateString.split('/');
var d = new Date(s[2], --s[1], s[0]);
return d && d.getFullYear() == s[2] && d.getDate() == s[0];
}
相关文章:
- 如何在AngularJS中有效地检查日期是否有效
- 检查日期是否为周末javascript
- 我怎么知道日期是否是星期六
- 检查html日期是否为>现在
- 如何创建一个函数来检查日期是否为回文
- 检查开始日期是否小于结束日期(不使用任何pluguin)
- 如何在javascript中检查日期是否在本周、本月或下个月内
- 验证日期是否早于当前日期的日期
- 如何在不包括当前日期的情况下检查日期是否不是过去
- 如何测试字符串是否有效日期是否使用时刻
- 检查日期是否大于一个月的第一个周结束日期
- 检查日期是否在过去,无需提交表格
- 角度JS比较两个日期是否相等
- 比较JavaScript中的两个mill i秒,以确定日期是否相同
- 捕获“无效日期”是否安全
- 如何使用 JavaScriptJQuery 检查一个日期是否在另一个日期之前
- 使用 JavaScript 检查事件日期是否有效
- 检查输入日期是否在给定范围内
- 项目日期是否在今天的5天内's日期
- 在javascript中检查输入的日期是否为18年和天数