js 日期有效性验证 的一点思考
在日常项目中经常遇到日期输入验证,以前我遇到的项目是日期只能通过日历控件来选择,最近我同事遇到一个问题是日期除了可以通过日历控件来输入也可以手动来输入,可是我们项目中居然没有日期格式的验证方法(备注:产品已经运行10多年了)。于是打算自己来写一个日期验证的方法,结果在网上一搜发现还有不少,经过验证并且觉得比较好用的code 如下:
function isdate(str) {
var result = str.match(/^(\d{,})(-|\/)(\d{,})\(\d{,})$/);
if (result == null) return false;
var d = new Date(result[], result[] - , result[]);
return (d.getFullYear() == result[] && d.getMonth() + == result[] && d.getDate() == result[]);
}
function isdatetime(str) {
var result = str.match(/^(\d{})(-|\/)(\d{,})\(\d{,}) (\d{,}):(\d{,}):(\d{,})$/);
if (result == null) return false;
var d = new Date(result[], result[] - , result[], result[], result[], result[]);
return (d.getFullYear() == result[] && (d.getMonth() + ) == result[] && d.getDate() == result[] && d.getHours() == result[] && d.getMinutes() == result[] && d.getSeconds() == result[]);
}
function istime(str) {
var a = str.match(/^(\d{,})(:)?(\d{,})\(\d{,})$/);
if (a == null) { return false; }
if (a[] >= || a[] >= || a[] >= ) {
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的复用度将是项目和产品的一个重要的技术指标。
js 日期有效性验证 的一点思考的更多相关文章
- js日期格式验证
js日期格式验证 <input type="text" maxLength='10' onkeyup='checkDate(this.value,jQuery(this)); ...
- js日期的写法,获取girdviw的行数、提示信息、验证数量信息
//制订日期(js日期的写法) var myDate = new Date(); var theDate = myDate.toLocaleDateString(); //获取今天的日期 //获取控 ...
- js身份证号有效性验证
1.简述 最近做的系统有用到实名验证的,起初对于用户身份证号只是简单地使用正则表达式进行验证, 很多无效的身份证号就成了漏网之鱼. 导致后台存表里很多无效的身份证号,随便输入用户名和身份证号就可以实名 ...
- JS表单验证-12个常用的JS表单验证
JS表单验证-12个常用的JS表单验证 最近有个项目用到了表单验证,小编在项目完结后的这段时间把常用的JS表单验证demo整理了一下,和大家一起分享~~~ 1. 长度限制 <p>1. 长度 ...
- jquery.validation.js 表单验证
jquery.validation.js 表单验证 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation jQuer ...
- JS获取当前日期时间及JS日期格式化
Js获取当前日期时间: var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份( ...
- Jquery.validate.js表单验证插件的使用
作为一个网站web开发人员,以前居然不知道还有表单验证这样好呀的插件,还在一行行写表单验证,真是后悔没能早点知道他们的存在. 最近公司不忙,自己学习一些东西的时候,发现了validation的一个实例 ...
- Js 日期操作
Js获取当前日期时间及其它操作var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); ...
- js表单验证工具包
常用的js表单验证方法大全 /* 非空校验 : isNull() 是否是数字: isNumber(field) trim函数: trim() lTrim() rTrim() 校验字符串是否为空: ch ...
随机推荐
- Asp.Net MVC4入门指南(1): 入门介绍
前言 本教程将为您讲解使用微软的Visual Studio Express 2012或Visual Web Developer 2010 Express Service Pack 1 来建立一个ASP ...
- 【转】HTTP状态码(HTTP Status Code)
原文链接:http://www.chaoji.com/features/httpstatus.aspx 一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - ...
- 20145225《Java程序设计》 第10周学习总结
20145225<Java程序设计> 第10周学习总结 教材学习内容总结 一.网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据: 程序员所作的事情就是把数据发送到指定 ...
- struts2的result的type属性
一共有两个属性name和type name这里就不介绍了 type 返回结果的类型,值可以从default-struts.properties中看到看到 常用的值:dispatcher (默认) ...
- iOS获取通讯录 电话号码与姓名
// 还是导入 #import <AddressBook/AddressBook.h> - (void)fetchAddressBookBeforeIOS9{ ABAddressBookR ...
- CSS 控制滚动条样式
/*作为IT界最前端的技术达人,页面上的每一个元素的样式我们都必须较真,就是滚动条我们也不会忽略.下面我给大家分享一下如何通过CSS来控制滚动条的样式,代码如下:*/ 1 /*定义滚动条轨道*/ #s ...
- JAVA_BaseDAO数据处理类
package dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStat ...
- 第43讲:Scala中类型变量Bounds代码实战及其在Spark中的应用源码解析
今天学习了scala的界定,先来看看下面这段代码 //class Pair[T] (val first : T,val second : T)class Pair[T <: Comparable ...
- hdu 5098 双队列拓扑排序
http://acm.hdu.edu.cn/showproblem.php?pid=5098 软件在安装之后需要重启才能发挥作用,现在给你一堆软件(有的需要重启有的不需要)以及安装这个软件之前需要哪些 ...
- struts 标签<s:ierator>的简单使用说明
struts 标签<s:ierator>的简单使用说明,只显示<s:ierator> 的前6条数据 <s:iterator value="lstVisitor& ...