• js正则判断日期


    //****************************************************************************
    // Function ID : Common_ChkDate
    // I/O : (I) datestr 日期对象
    // RETURN VALUE : true/false
    // DESCRIPTION : onBlur,判断输入的日期是否合法
    //****************************************************************************
    function Common_ChkDate(datestr) {

    // 正規表現 判断日期格式是否是"yyyy/MM/dd"
    if (!datestr.match(/^d{4}/d{1,2}/d{1,2}$/)) {
    return false;
    }

    //判断月和日是否是两位,如果是1位,就在前面加“0”
    if (datestr.length < 10) {
    var l_splitDate = datestr.trim().split('/')
    for (i = 0; i < l_splitDate.length; i++) {
    if (l_splitDate[i].length == 1) {
    l_splitDate[i] = "0" + l_splitDate[i]
    }
    }
    l_splitDate = l_splitDate[0] + '/' + l_splitDate[1] + '/' + l_splitDate[2]
    datestr = l_splitDate
    }

    // 将日期转换为数值类型
    var iYear = datestr.substr(0, 4) - 0;
    var iMonth = datestr.substr(5, 2) - 0;
    var iDay = datestr.substr(8, 2) - 0;

    //有効年范围1753~9999
    if ((Number(iYear) > 9999) || (Number(iYear) < 1753)) {
    return false;
    }

    // 月份正常时31天
    if ((iMonth >= 1) && (iMonth <= 12)) {
    var iMaxDay = 31;

    // 判断哪几个月份是30天
    switch (iMonth) {
    case 4:
    case 6:
    case 9:
    case 11:
    iMaxDay = 30;
    break;
    case 2:

    // 能被4整除的闰年
    if ((iYear % 4) == 0) {
    // 也能被 100 整除是闰年
    if ((iYear % 100) == 0) {
    // 也能被 400 整除 是闰年
    if ((iYear % 400) == 0) {
    iMaxDay = 29;
    } else {
    iMaxDay = 28;
    }
    } else {
    // 能被4 整除 不能被 100 整除闰年
    iMaxDay = 29;
    }
    } else {
    // 不能被 4 整除的是
    iMaxDay = 28;
    }
    break;
    default:
    break;
    }

    //天的取值范围
    if ((iDay >= 1) && (iDay <= iMaxDay)) {
    return true;
    }
    }
    return false;
    }

  • 相关阅读:
    js循环
    js对象
    实现checkebox全选取消操作
    js数组
    jquery记忆笔记
    js选择checkbox值,组织成key-value形式,传值到后台
    ES6常用语法,面试应急专用!
    Win10 系统运行VsCode出现白屏的问题(亲测有效)
    command failed: npm install --loglevel error --registry=https://registry.npm 用vue-cli 4.0 新建项目总是报错
    MODULE BUILD FAILED: ERROR: COULDN’T FIND PRESET “ES2015” RELATIVE TO DIRECTORY
  • 原文地址:https://www.cnblogs.com/WarBlog/p/4444754.html
Copyright © 2020-2023  润新知