java 前后台日期验证
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 前后台日期验证相关的知识,希望对你有一定的参考价值。
校验日期:0000/00/00 和 0000/99/99
------------------------------------------------
前台用的jquery.validate的date:true
一般的格式错误它能check住,但是上面的例子就不行
----------------------------------------------------------------------
后台更坑,SimpleDateFormat竟然不出错,转成了0002-11-30和0008-06-07
try
SimpleDateFormat fmtIn = new SimpleDateFormat(“yyyy/MM/dd”);
SimpleDateFormat fmtOut = new SimpleDateFormat("yyyy-MM-dd");
return Date.valueOf(fmtOut.format(fmtIn.parse(inDate)));// sql用java.sql.Date
catch (Exception e)
return null;// 不出错,没走这里
-----------------------------------------------------------------
求解决方案,前后台都能check准点的方法~万分感谢~
后台
String eL= "^((\\d2(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d2(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1-2][0-9]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$";
Pattern p = Pattern.compile(eL);
Matcher m = p.matcher(checkValue);
boolean b = m.matches();
if(b)
System.out.println("格式正确");
else
System.out.println("格式错误");
参考技术B 建议用正则去验证 参考技术C b/s结构的系统 请用js校验日期 参考技术D 呵呵,你这种验证不是强人所难么??
你看看源码解析吧,当你输入99的时候它是会进行移位的!
iview中表单验证(遇到的问题)
一,
1,日期时间选择器,验证时type应为‘data‘类型;
{ required: true, type: ‘date‘, message: ‘请选择日期‘, trigger: ‘blur‘ }
2,(将后台获取到的字符串格式的数据放入new Data()中,问题就解决了)日期时间选择器,是将时间转为标准时间格式进行处理的,这里要注意在进行赋值操作时记得把后台获取的的字符串的日期时间给转为标准时间后再进行赋值操作
this.formValidate.beginDate = new Date(row.beginTime)
二,
1,select及下拉多选选择器,验证时type应为‘array‘类型
{ type: ‘array‘, required: true, message: ‘请选择下游通道‘ }
以上是关于java 前后台日期验证的主要内容,如果未能解决你的问题,请参考以下文章
将前台日期格式转成与数据库日期格式相对应,后台java转数据库日期格式