我使用简单的日期正则表达式来验证输入字符串是否具有所需的格式:
在这种情况下 dd/mm/yyyy
使用 type="date"
时,谷歌浏览器中的日期验证正则表达式失败:
显示: dd / mm / yyyy
呈现: yyyy-mm-dd (这就是问题所在)
如何使用正则表达式(或替代)在使用 type="date"
时验证浏览器的日期字符串?
注意:使用正则表达式验证yyyy-mm-dd不是有效的解决方案,除非最终用户仍然看到dd / mm / yyyy。
答案 0 :(得分:2)
<input type="date" />
在内部处理日期:
&GT; xkcd
因此,您的格式应为^\d{4}-\d\d-\d\d$
。但请注意,如果用户的浏览器不支持type="date"
,或者提供JavaScript日历替代方案,则需要向用户提供明确的说明,否则人们不会理解!
由于目前对type="date"
的支持如此之小,最好使用JavaScript并使用隐藏的input
字段来存储YYYY-mm-dd
格式日期并验证同时,让用户自由键入实际输入字段并尝试解析它。