`
orcl_zhang
  • 浏览: 234329 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

IsDate() in JavaScript?

阅读更多
原帖地址:http://www.codetoad.com/forum/17_10053.asp
我筛选了,大致的方法有以下几个。
function myIsDate(mystring)
{//--BOF 
var mystring, myresult ;
var mystring = new Date(mystring);
isNaN(mystring)? myresult=false : myresult=true ;
return myresult ;
//--EOF
}
//我的测试
  alert(IsDate('2009/10/10'));  //true
  alert(IsDate('2010/07/00'));  //true
  alert(IsDate('2009/02/30'));  //true
  alert(IsDate('200k/10/10'));  //false
  alert(IsDate('2009/13/10'));  //true
  alert(IsDate('200k-10-10'));  //false
//失败

function isDate (value)
{
return (!isNaN (new Date (value).getYear () ) ) ;
}
//我的测试
  alert(IsDate('2009/10/10'));  //true
  alert(IsDate('2010/07/00'));  //true
  alert(IsDate('2009/02/30'));  //true
  alert(IsDate('200k/10/10'));  //false
  alert(IsDate('2009/13/10'));  //true
  alert(IsDate('200k-10-10'));  //false
//失败

// 这个可以,稍微改改,加上匹配'2010-01-10'就好了。
// ******************************************************************
// This function accepts a string variable and verifies if it is a
// proper date or not. It validates format matching either
// mm-dd-yyyy or mm/dd/yyyy. Then it checks to make sure the month
// has the proper number of days, based on which month it is.

// The function returns true if a valid date, false if not.
// ******************************************************************

function isDate(dateStr) {

var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var matchArray = dateStr.match(datePat); // is the format ok?

if (matchArray == null) {
alert("Please enter date as either mm/dd/yyyy or mm-dd-yyyy.");
return false;
}

month = matchArray[1]; // p@rse date into variables
day = matchArray[3];
year = matchArray[5];

if (month < 1 || month > 12) { // check month range
alert("Month must be between 1 and 12.");
return false;
}

if (day < 1 || day > 31) {
alert("Day must be between 1 and 31.");
return false;
}

if ((month==4 || month==6 || month==9 || month==11) && day==31) {
alert("Month "+month+" doesn`t have 31 days!")
return false;
}

if (month == 2) { // check for february 29th
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day==29 && !isleap)) {
alert("February " + year + " doesn`t have " + day + " days!");
return false;
}
}
return true; // date is valid
}

function IsDate(dateval){
    var arr = new Array();

    if(dateval.indexOf("-") != -1){
        arr = dateval.toString().split("-");
    }else if(dateval.indexOf("/") != -1){
        arr = dateval.toString().split("/");
    }else{
        return false;
    }

    //yyyy-mm-dd || yyyy/mm/dd
    if(arr[0].length==4){
        var date = new Date(arr[0],arr[1]-1,arr[2]);
        if(date.getFullYear()==arr[0] && date.getMonth()==arr[1]-1 && date.getDate()==arr[2]){
            return true;
        }
    }
    //dd-mm-yyyy || dd/mm/yyyy
    if(arr[2].length==4){
        var date = new Date(arr[2],arr[1]-1,arr[0]);
        if(date.getFullYear()==arr[2] && date.getMonth()==arr[1]-1 && date.getDate()==arr[0]){
            return true;
        }
    }
    //mm-dd-yyyy || mm/dd/yyyy
    if(arr[2].length==4){
        var date = new Date(arr[2],arr[0]-1,arr[1]);
        if(date.getFullYear()==arr[2] && date.getMonth()==arr[0]-1 && date.getDate()==arr[1]){
            return true;
        }
    }

    return false;
}
  alert(IsDate('2009/10/10'));  //true
  alert(IsDate('2010/07/00'));  //false
  alert(IsDate('2009/02/30'));  //false
  alert(IsDate('200k/10/10'));  //false
  alert(IsDate('2009/13/10'));  //false
  alert(IsDate('200k-10-10'));  //false
  alert(IsDate('2000-02-29'))   //true
  alert(IsDate('2100-02-29'))   //true
//就是你了

//匹配//yyyy-mm-dd || yyyy/mm/dd  
function isDate(str) 
{ 
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
if(r==null)return false; var d = new Date(r[1], r[3]-1, r[4]); 
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]); 
} 
//这个也行!
分享到:
评论

相关推荐

    JavaScript版的DateAdd、DateDiff、IsDate函数

    JavaScript版的DateAdd、DateDiff、IsDate函数

    postgresql的类似sqlserver的isdate方法

    postgresql的类似sqlserver的isdate方法

    vb IsDate判断字符串是否为日期或时间.rar

    vb 判断字符串是否为日期或时间,在输入框输入任意字符串类型,程序将会判断出该字符串是否是时间字符串,这个判断方法VB员自带有函数,使用IsDate即可实现,下面是使用IsDate的简单用法示例:  If IsDate(Text1) =...

    javascript 验证日期的函数

    导致数据库跑任务出现... javascript代码 代码如下: //判断日期是否合法 function IsDate(oTextbox) { var regex = new RegExp(“^(?:(?:([0-9]{4}(-|\/)(?:(?:0?[1,3-9]|1[0-2])(-|\/)(?:29|30)|((?:0?[13578]|1[02])

    javascript数据类型验证方法

    我们自定义了isString,isNumber ,isDate ,isError ,isRegExp ,isBoolean ,isNull ,isUndefined ,isObject等方法。现在将自己定义的javascript数据类型验证函数及测试集展示: &lt;!DOCTYPE html&gt; &lt;html&gt; &...

    javascript 简单高效判断数据类型 系列函数 By shawl.qiu

     在刚开始时, 发现 VBS 的一些实用函数 Js 好多都没有, formatNumber 呀 isArray 呀 isDate 呀 等等. 还有日期对象也是很奇怪, 不能直接加加减减, 要set***… 不过对 Javascript/Jscript 掌握到...

    利用jquery扩展的验证工具库

    这里主要介绍我自己所写的利用构建在jQuery之上的工具库,该库的原文件名为...isInRange: 是否在某一个范围内 isValidPattern: 是否满足给定的正则表达式 validateFormItem: 执行表单项验证, 必须与jQuery一起结合使用

    一个用于数据验证的Javascript库。-JavaScript开发

    对象.isDate(val)⇒.isValidDate(val)⇒.functions:对象.isFunction(val)⇒.numbers:对象.isBetween(下,上) )⇒函数.exclusive⇒函数.inclusive⇒函数.isFinite(val)⇒.isGreater

    Javascript中定义方法的另类写法(批量定义js对象的方法)

    }, isDate : function(v){ return toString.apply(v) === ‘[object Date]’; }, isObject : function(v){ return !!v && Object.prototype.toString.call(v) === ‘[object Object]’; }, isPrimitive : function...

    postgresql中判断是否为数字和是否为时间日期格式的相关函数

    postgresql中判断是否为数字和是否为时间日期格式的相关函数,类似于sqlserver中的isDate和isnumeric函数

    strict-date:验证值是否为 Date 对象

    var isDate = require ( 'validate.io-strict-date' ) ; isDate( 值 ) 验证value是否为Date对象。 var value = new Date ( ) ; var bool = isDate ( value ) ; // returns true 例子 console . log ( isDate ( ...

    微信公众平台开发

    If IsEmpty strTime or Not IsDate strTime Then strTime Now If IsEmpty intTimeZone or Not isNumeric intTimeZone Then intTimeZone 0 ToUnixTime DateAdd &quot;h&quot; intTimeZone strTime ToUnixTime ...

    ASP函数速查大全手册

    IsDate(日期或字符串的表达式) 是否可以转换成日期。日期从January 1,100 A.D. 到 December 31,9999 A.D。 例子:IsDate("December 31,1999 ") 结果:True 说明:可以转换成日期。 IsEmpty(变数) 测试变量是...

    classTest03-jquery.rar

    1)自己封装一个JS,叫做checkInput.js  里面有一个方法,方法叫做validate ... isDate true/false  isNumeric true/false 是否为两位小数  自己进行测试 (2) 菜单树的实现 (3) 模糊查询,分页(客户端分页)

    messiah:节点对象验证器

    isDate 检查值是否为Date 。contains 检查str是否包含在值中。equals 检查值是否等于str 。matches 检查值是否与正则表达式pattern匹配。isIn 检查该值是否在数组arr 。isLength 检查值长度是否在min和max之间。 ...

    表单验证Validator v1.0(CHM) 下载

    Validator是基于JavaScript技术的伪静态类和对象的自定义属性,可以对网页中的表单项输入进行相应的验证,允许同一页面中同时验证多个表单,熟悉接口之后也可以对特定的表单项甚至仅仅是某个字符串进行验证。...

    Android常用字符串匹配正则

    isDate : 验证yyyy-MM-dd格式的日期校验,已考虑平闰年 isIP : 验证IP地址 isMatch : 判断是否匹配正则 getMatches : 获取正则匹配的部分 getSplits : 获取正则匹配分组 getReplaceFirst: 替换正则匹配的第一部分 ...

    angular-typecheck:Angular.js的额外类型检查方法

    angular.isDate() angular.isArray() angular.isFunction() 可是等等! 此列表不完整! 让我们用缺少的类型扩展此列表! angular.isNull() angular.isBoolean() angular.isRegExp() angular.isNaN() 新的...

    前端开源库-isa.js

    前端开源库-isa.jsjs,非常少的集合是isa函数。IsObject、IsArray、IsDate…

    工具类之RegexUtils

    isDate : 验证yyyy-MM-dd格式的日期校验,已考虑平闰年 isIP : 验证IP地址 isMatch : 判断是否匹配正则 getMatches : 获取正则匹配的部分 getSplits : 获取正则匹配分组 getReplaceFirst : 替换正则匹配的第一部分 ...

Global site tag (gtag.js) - Google Analytics