HTML5日期验证
HTML5 Date Validation
我希望为移动站点实现验证,其中我有两个输入字段,我希望第一个字段在今天之前验证值,第二个字段在第一个值之前一年内验证值。
E.g
- 第一个值=2013年11月26日
- 第二个值不能包含晚于2014年11月26日的值
这可能吗?
我喜欢moment.js。它使处理日期和时间变得更容易。
首先,让我们确定一天"在明天之前"。这将在一定程度上取决于明天的定义
var m = moment("26/11/2013", "MM/DD/YYYY");
// tomorrow this time
var t = moment().add("days", 1);
// tomorrow start of day
var tomorrow = moment([t.year(), t.month(), t.date()]);
if (m.lessThan(tomorrow)) {
// today!!! (or before)
}
同样,从现在起一年内也可以使用同样的方法。在这种情况下,不关心时间成分可能已经足够好了,而且我又辛苦地度过了一天——但如果这很重要(例如,寻找一天的开始),请参阅前面的例子。
var m = moment("26/11/2013", "MM/DD/YYYY");
var aYearFromNow = moment().add("years", 1).add("days", 1);
if (m.lessThan(aYearFromNow)) {
// still less than a year!
}
1)缓存元素。
var d1 = document.getElementById('date1');
var d2 = document.getElementById('date2');
2) d1
和d2
的值为string
数据类型。因此,将它们拆分,并将其解析为以下的日期格式
var t = d1.value.split("-");
var date = new Date(parseInt(t[0], 10) + 1, parseInt(t[1], 10), t[2]);
此处,年份根据d1
中的值递增1。
4) 再次将其解析回字符串格式(YYYY-MM-DD)
var maxi = date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate();
5) 将其设置为d2
的max
属性的值
d2.setAttribute("max", maxi);
最后,将以下方法添加到d1
的onblur
事件中。
function setMaxDate() {
var d1 = document.getElementById('date1');
var d2 = document.getElementById('date2');
var t = d1.value.split("-");
var date = new Date(parseInt(t[0], 10) + 1, parseInt(t[1], 10), t[2]);
var maxi = date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate();
d2.setAttribute("max", maxi);
}
JSFiddle
使用javascript效果更佳。我可以使用HTML5属性type="date",但请记住,它几乎不受支持。
您可以使用类似/([0-9]{2})/([0-9]{2})/([0-9]{4})/
的Regex模式,即两个十进制数字、一个斜线、两个以上的十进制数字、斜线和四个十进制数字,所有内容都单独分组(组1=天,组2=月,组3=年)。您将在事件中测试这种模式(我建议onchange
,因为您提到了移动设备),并检查数字是否在有效范围内(例如,天<32,月<13,年<currentYear-1)。
相关文章:
- 如何在Javascript中验证日期期间与其他日期期间的交叉
- 如何验证日期、月份和日期的3个独立输入字段;年使用jquery或javascript
- 使用MomentJs在Nodejs中验证日期
- 如何使用javascript将验证日期设置为不小于文本框中的开始日期
- 验证日期是否早于当前日期的日期
- 如何在 javascript 中验证整数是否为验证日期
- 通过 jQuery 验证日期字符串格式的最佳方法
- 如何验证日期必须从两个日期中不少于一年
- 验证日期输入 - 最小值和最大值
- jQuery(或javascript)验证日期范围
- 使用时刻验证日期时出现问题.js按格式
- 焦点将放在jquery中的验证日期选择器字段上
- 什么是用于验证日期格式(如月/年)的正则表达式
- 如何使用 HTML 验证日期范围
- 日期验证日期选取器
- 使用提交验证日期输入字段
- 如何在 JavaScript 中使用格式“MMM DD, YYYY h:mm:ss A”验证日期
- 正在验证日期字段's使用angularJS
- 如何在日期选择器中验证日期时间
- new Date转换无效日期,可以'无法正确验证日期