我想验证输入日期类型的字段。目前,我正在尝试使用javascript方法来验证字段。
这是我用过的代码。
var RE_DOB = /^([0-9]{2})\/([0-9]{2})\/([0-9]{4})$/;
我目前的日期格式是29/07/2014
只是想知道如何验证输入日期类型的字段。我能够在文本上实现它们,但如果输入类型是日期,那么用户可能在移动设备上使用网站就会很好,它会在这些设备上显示日期选择器。
答案 0 :(得分:0)
在内部,日期输入的值为ISO-8601 standard:YYYY-MM-DD
然而,在外部,日期输入将使用用户计算机定义的任何格式(区域设置感知),使人们可以轻松使用。
您的验证应该正在寻找^\d{4}-\d\d-\d\d$
(虽然仅此一项对于日期验证来说是不够的,除非9876-54-32
是您的有效日期!)
答案 1 :(得分:0)
您仍然可以将所有内容输入type="date"
输入字段。 type="date"
属性唯一的作用是显示日期选择器(在大多数移动设备上为e.x.)。尚未实施浏览器验证。
您需要的是:
它们取决于您希望接受的格式。如前所述,您可以使用JavaScripts match()
字符串函数来验证客户端站点上的输入。例如
if(yourInput.match(/^\d{4}-\d{2}-\d{2}$/) == false)
alert('invalid date');
验证客户端的YYYY-MM-DD
模式。
在服务器端,您应该使用DateTime::createFromFormat()
或DateTime::__construct()
并检查DateTime::getLastErrors()
是否有解析错误,这些错误会告诉您用户的输入不是有效日期。