当前位置:首页 > 编程笔记 > 正文
已解决

layui laydate 提示“日期格式不正确”

来自网友在路上 135835提问 提问时间:2023-09-27 08:26:00阅读次数: 35

最佳答案 问答题库358位专家为你答疑解惑

通过查看layui的源码,

            verify: {required: [/[\S]+/, "\u5fc5\u586b\u9879\u4e0d\u80fd\u4e3a\u7a7a"],phone: [/^1\d{10}$/, "\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u624b\u673a\u53f7"],email: [/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, "\u90ae\u7bb1\u683c\u5f0f\u4e0d\u6b63\u786e"],url: [/^(#|(http(s?)):\/\/|\/\/)[^\s]+\.[^\s]+$/, "\u94fe\u63a5\u683c\u5f0f\u4e0d\u6b63\u786e"],number: function(e) {if (!e || isNaN(e))return "\u53ea\u80fd\u586b\u5199\u6570\u5b57"},date: [/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/, "\u65e5\u671f\u683c\u5f0f\u4e0d\u6b63\u786e"],identity: [/(^\d{15}$)|(^\d{17}(x|X|\d)$)/, "\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u8eab\u4efd\u8bc1\u53f7"]},

可以看到 lay-verify="date"  

只验证 年月日,不支持时分秒。

最佳实践

1)日期框只能下拉,禁止输入,+不验证

2)自定义验证,参考layui文档,地址

表单组件 form - Layui 文档

补充:

yyyy-MM-dd HH:mm:ss 用正则校验很麻烦,考虑瑞年,每月的天数不同。

我写的验证:

反正格式化方法肯定有了,直接用

window.bitar.timeFormatLong=function(milliseconds) {var time = new Date(Number(milliseconds));var fmt = "yyyy-MM-dd HH:mm:ss";var o = {"M+": time.getMonth() + 1, // 月份"d+": time.getDate(), // 日"H+": time.getHours(), // 小时"m+": time.getMinutes(), // 分"s+": time.getSeconds(), // 秒"S": time.getMilliseconds() // 毫秒};if (/(y+)/.test(fmt))fmt = fmt.replace(RegExp.$1, (time.getFullYear() + "").substr(4 - RegExp.$1.length));for (var k in o)if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));return fmt;
};

//原理,通过new Date 默认已经支持了几种格式

layui.form.verify({// 必填项datetime: function(value, elem) {// 自定义规则if (value.length !=19) {return '日期格式不正确';}if(value!= bitar.timeFormatLong(new Date(value).getTime())){return '日期格式不正确';}}
});
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"layui laydate 提示“日期格式不正确”":http://eshow365.cn/6-14548-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!