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 ...
随机推荐
- C#DataTable与Model互转
/// <summary> /// 实体转换辅助类 /// </summary> public class ModelConvertHelper<T> where ...
- c++ MFC图像处理CImage类常用操作代码
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9598974.html MFC图像处理CImage类常用操作 CImage类头文件为#inclu ...
- Poj 3667——hotel——————【线段树区间合并】
Hotel Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 13124 Accepted: 5664 Descriptio ...
- java.lang.Exception: DEBUG -- CLOSE BY CLIENT STACK TRACE 的理解
[2013-12-06 11:06:21,715] [C3P0PooledConnectionPoolManager[identityToken->2tl0n98y1iwg7cbdzzq7a|7 ...
- [转]Create Custom Exception Filter in ASP.NET Core
本文转自:http://www.binaryintellect.net/articles/5df6e275-1148-45a1-a8b3-0ba2c7c9cea1.aspx In my previou ...
- JavaScript字符串去除空格
/*字符串去除空格*/ String.prototype.Trim = function() { return this.replace(/(^\s*)|(\s*$)/g, "") ...
- sql查询时,根据特定的条件给表的某一个字段赋值
先讲一下需要这个需求的情景: 这是一个招聘求职项目遇到的一个问题.个人A向公司B的职位投递简历后,公司B会收到个人A的简历;但是A投递后把简历删除,公司收到的简历信箱 还有这个简历,但却不能看了. 原 ...
- 洛谷P3177 [HAOI2015]树上染色(树上背包)
题意 题目链接 Sol 比较套路吧,设\(f[i][j]\)表示以\(i\)为根的子树中选了\(j\)个黑点对答案的贡献 然后考虑每条边的贡献,边的两边的答案都是可以算出来的 转移的时候背包一下. # ...
- vue发布后的一些问题
1.发布后把config/index.js 的productionSourceMap: true,改成productionSourceMap: false webpack成功隐藏
- Eclipse Common API
Platform runtime Defines the extension point and plug-in model. It dynamically discovers plug-ins an ...