使用input type =“date”时创建有效的正则表达式

时间:2014-05-14 15:46:49

标签: javascript regex html5 google-chrome date

我使用简单的日期正则表达式来验证输入字符串是否具有所需的格式:

在这种情况下 dd/mm/yyyy

问题

使用 type="date" 时,谷歌浏览器中的日期验证正则表达式失败:

显示: dd / mm / yyyy

呈现: yyyy-mm-dd (这就是问题所在)

Chrome date issue


问题

如何使用正则表达式(或替代)在使用 type="date" 时验证浏览器的日期字符串?

注意:使用正则表达式验证yyyy-mm-dd不是有效的解决方案,除非最终用户仍然看到dd / mm / yyyy。

1 个答案:

答案 0 :(得分:2)

<input type="date" />在内部处理日期:

xkcd
&GT; xkcd

因此,您的格式应为^\d{4}-\d\d-\d\d$。但请注意,如果用户的浏览器不支持type="date",或者提供JavaScript日历替代方案,则需要向用户提供明确的说明,否则人们不会理解!

由于目前对type="date"的支持如此之小,最好使用JavaScript并使用隐藏的input字段来存储YYYY-mm-dd格式日期并验证同时,让用户自由键入实际输入字段并尝试解析它。