js 日期有效性验证 的一点思考
来源:互联网 发布:java替换文本文件内容 编辑:程序博客网 时间:2024/06/15 21:53
在日常项目中经常遇到日期输入验证,以前我遇到的项目是日期只能通过日历控件来选择,最近我同事遇到一个问题是日期除了可以通过日历控件来输入也可以手动来输入,可是我们项目中居然没有日期格式的验证方法(备注:产品已经运行10多年了)。于是打算自己来写一个日期验证的方法,结果在网上一搜发现还有不少,经过验证并且觉得比较好用的code 如下:
function isdate(str) { var result = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); if (result == null) return false; var d = new Date(result[1], result[3] - 1, result[4]); return (d.getFullYear() == result[1] && d.getMonth() + 1 == result[3] && d.getDate() == result[4]); } function isdatetime(str) { var result = str.match(/^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/); if (result == null) return false; var d = new Date(result[1], result[3] - 1, result[4], result[5], result[6], result[7]); return (d.getFullYear() == result[1] && (d.getMonth() + 1) == result[3] && d.getDate() == result[4] && d.getHours() == result[5] && d.getMinutes() == result[6] && d.getSeconds() == result[7]); } function istime(str) { var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/); if (a == null) { return false; } if (a[1] >= 24 || a[3] >= 60 || a[4] >= 60) { return false } return true; } function compareDate(d1, d2) { return ((new Date(d1.replace(/-/g, "\/"))) < (new Date(d2.replace(/-/g, "\/")))); }
按理说,项目一旦开始就应该有一些通用的组件(方法)比如这里的日期验证,还有email格式验证 等等。(吐个槽,前一段时间有个任务是修改eamil的格式,按理说验证email的格式在js里面应该只有一个方法啊,但是经过项目调查后发现有大概10个地方都在验证email格式是否正确,也就是说我要改这个10个地方,如果少改了一个地方就是一个bug。。。。。。,项目架构如此,该问bug能不少吗?产品质量能提高吗?)。
我也经过过设计模式,设计原则的时代,近10年我开发的理念是“为复用而开发,为使用而组装”,code的复用度将是项目和产品的一个重要的技术指标。
0 0
- js 日期有效性验证 的一点思考
- JavaScript日期有效性验证
- java日期有效性验证
- JS验证数据有效性的具体方法
- JS检查日期有效性
- EasyUI的自定义验证规则,验证日期的有效性
- EasyUI的自定义验证规则,验证日期的有效性
- JS身份证有效性验证
- JS验证身份证有效性
- js有效性验证-自定义验证
- 关于ORACLE日期转换的一点思考
- 日期有效性的判断
- 一点日期格式 JS的
- js正则表达式验证有效性
- js正则表达式验证有效性
- js实现身份证号有效性验证
- js正则验证手机号码有效性
- JS验证银行卡号有效性
- 牛人求职经验
- 【Node.js】basicAuth中间件的使用
- xxxMapper.xml简单crud
- 【转】latex两栏排版时如何插入跨栏的表格或图形{汇总}
- <转>为什么 Android 上 Canvas 画出的图形不够平滑?
- js 日期有效性验证 的一点思考
- JAVA代码规范
- QQ授权登入(Android SDK3.1)
- 一点感想
- handler处理机制
- Encoder-Decoder model couplet
- UDP/TCP穿越NAT打洞
- 栈的压入和弹出序列
- 从输入网址到显示网页的全过程分析