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正则格式化日期时间自动补0
原文 js正则格式化日期时间自动补0 背景 时间日期格式化的需求很常见,也有很多工具类转换方法,比如需要将2022-3-4这种日期格式转化为2022-03-04,也就是实现个位数月份或天数日期自动前置 ...
- 用js正则判断输入的两位字符,第一位是数字16进制的,第二位是I、O、Q、U除外的字母(A到Z)
项目中遇到客户的需求变化,要验证某个数据的正确性,判断输入的两位字符,第一位是数字16进制的,第二位是I.O.Q.U除外的字母(A到Z). 本来对js不熟练,网上参考了一下js正则验证的规则,使用正则 ...
- js正则判断电话/手机/邮箱/
用途:校验ip地址的格式 输入:strIP:ip地址返回:如果通过验证返回true,否则返回false:*/ function isIP(strIP) { if (isNull(strIP)) ret ...
- js 正则判断字符串下划线的长度
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js正则判断实现18位数字
js实现18位数字 var stuCardReg = /^[0-9]{18}/; var stuCard = $('.inp).val();//获取input框中的数值 if (!stuCardReg ...
- JS正则判断输入框是否仅仅含有汉字、字母和数字
代码如下: if($.trim($("#user_api_register_form").find("input[name='user_name']").val ...
- js正则判断字符串中是否包含特殊字符和空格
字符串只能是数字.字母和中文组成,不能包含特殊符号和空格. /^[\u4e00-\u9fa5_a-zA-Z0-9]+$/
- 如何用js检测判断时间日期的间距
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- js正则表单验证汇总,邮箱验证,日期验证,电话号码验证,url验证,信用卡验证,qq验证
本文主要汇总各种正则验证,很多都是转载,本人也会尽可能验证准确性,如有错误欢迎留言 //trim()方法在有些浏览器中不兼容,最好自己重写一下 String.prototype.trim=functi ...
随机推荐
- 移动开发:Android官方提供的支持不同屏幕大小的全部方法
转载请注明出处:http://blog.csdn.net/sinyu890807/article/details/8830286 原文地址为:http://developer.android.com/ ...
- MsysGit下GUI乱码问题解决
在Windows下安装Git-preview-1.7.4后,使用中发现许多的乱码问题,感觉甚是不便.这是因为Git是在linux下开发的管理软件,而linux的编码方式是基于UTF-8的,所以移植到W ...
- 白话SpringCloud | 第十一章:路由网关(Zuul):利用swagger2聚合API文档
前言 通过之前的两篇文章,可以简单的搭建一个路由网关了.而我们知道,现在都奉行前后端分离开发,前后端开发的沟通成本就增加了,所以一般上我们都是通过swagger进行api文档生成的.现在由于使用了统一 ...
- APP测试点集合
一.功能性测试: (1)根据产品需求文档编写测试用例 (2)软件设计文档编写用例 二.兼容性适配性测试: (1)Android.iOS版本的兼容性 (2)手机分辨率兼容性 (3)网络的兼容性:2G/3 ...
- 使用setInterval函数改变网页背景的颜色
var icolor=0; var iNum=256; var iID=setInterval(setbgColor, 500); function setbgColor() { body.backg ...
- 前台通过ajax获取后台数据,PHP如何返回中文数据
现在经常使用Ajax调用后台php获取后台数据,但是PHP返回的数据如果含有中文的话,Ajax会无法识别,那咋整呢,我用的是比较笨的方法,但是实用: 方法一: echo urldecode(json_ ...
- ICONIX
- !function()是干什么的?
叹号后面跟函数!function和加号后面跟函数+function都是跟(function(){})();这个函数是一个意思,都是告诉浏览器自动运行这个匿名函数的,因为!+()这些符号的运算符是最高的 ...
- linux基础-linux和unix的区别
有时候我们对天天使用的Linux指令,只知道怎么用,却分不清概念用法区别,我觉得很有必要整理整理大家熟视无睹的一些linux概念区别. 首先说说unix和linux的区别: linux和unix的最大 ...
- OLEDB 数据变更通知
除了之前介绍的接口,OLEDB还定义了其他一些支持回调的接口,可以异步操作OLEDB对象或者得到一些重要的事件通知,从而使应用程序有机会进行一些必要的处理.其中较有用的就是结果集对象的变更通知接口.通 ...