javascript 驗(yàn)證日期的函數(shù)
更新時(shí)間:2010年03月18日 18:19:27 作者:
最近這個(gè)項(xiàng)目中有幾個(gè)需要錄入日期的地方,開始由于沒有對(duì)這些地方進(jìn)行有效性驗(yàn)證,結(jié)果用戶錄入的日期有好多非法日期,諸如什么2007-2-29,還有2005-2-30等錯(cuò)誤日期
導(dǎo)致數(shù)據(jù)庫跑任務(wù)出現(xiàn)錯(cuò)誤(任務(wù)根據(jù)日期來計(jì)算狀態(tài)的,由于數(shù)據(jù)量比較大,都做成任務(wù)夜里跑),為了避免再出現(xiàn)此類的錯(cuò)誤,所以增加了一個(gè)驗(yàn)證日期有效性的javascript方法。
本方法能夠有效的驗(yàn)證閏年,支持的日期格式有:2009-01-01、2009/01/01兩種格式。
javascript代碼
//判斷日期是否合法
function IsDate(oTextbox) {
var regex = new RegExp("^(?:(?:([0-9]{4}(-|\/)(?:(?:0?[1,3-9]|1[0-2])(-|\/)(?:29|30)|((?:0?[13578]|1[02])(-|\/)31)))|([0-9]{4}(-|\/)(?:0?[1-9]|1[0-2])(-|\/)(?:0?[1-9]|1\\d|2[0-8]))|(((?:(\\d\\d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))(-|\/)0?2(-|\/)29))))$");
var dateValue = oTextbox.value;
if (!regex.test(dateValue)) {
alert("日期有誤!");
dateValue = "";
this.focus();
return;
}
}
使用測(cè)試
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title></title>
<script type="text/javascript" src="jQuery/JScript1.js"></script>
<script type="text/javascript" src="jQuery/jquery-vsdoc.js"></script>
</head>
<body>
<input type="text" id="sDate" />
<script type="text/javascript">
$("#sDate").blur(function() {IsDate($(this)[0]);})
</script>
</body>
</html>
本方法能夠有效的驗(yàn)證閏年,支持的日期格式有:2009-01-01、2009/01/01兩種格式。
javascript代碼
復(fù)制代碼 代碼如下:
//判斷日期是否合法
function IsDate(oTextbox) {
var regex = new RegExp("^(?:(?:([0-9]{4}(-|\/)(?:(?:0?[1,3-9]|1[0-2])(-|\/)(?:29|30)|((?:0?[13578]|1[02])(-|\/)31)))|([0-9]{4}(-|\/)(?:0?[1-9]|1[0-2])(-|\/)(?:0?[1-9]|1\\d|2[0-8]))|(((?:(\\d\\d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))(-|\/)0?2(-|\/)29))))$");
var dateValue = oTextbox.value;
if (!regex.test(dateValue)) {
alert("日期有誤!");
dateValue = "";
this.focus();
return;
}
}
使用測(cè)試
復(fù)制代碼 代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title></title>
<script type="text/javascript" src="jQuery/JScript1.js"></script>
<script type="text/javascript" src="jQuery/jquery-vsdoc.js"></script>
</head>
<body>
<input type="text" id="sDate" />
<script type="text/javascript">
$("#sDate").blur(function() {IsDate($(this)[0]);})
</script>
</body>
</html>
您可能感興趣的文章:
- 兩行代碼輕松搞定JavaScript日期驗(yàn)證
- javascript日期驗(yàn)證之輸入日期大于等于當(dāng)前日期
- JS驗(yàn)證日期的格式Y(jié)YYY-mm-dd 具體實(shí)現(xiàn)
- JS 日期驗(yàn)證正則附asp日期格式化函數(shù)
- js實(shí)現(xiàn)獲取兩個(gè)日期之間所有日期的方法
- js日期插件dateHelp獲取本月、三個(gè)月、今年的日期
- 獲取陰歷(農(nóng)歷)和當(dāng)前日期的js代碼
- JS獲取時(shí)間的相關(guān)函數(shù)及時(shí)間戳與時(shí)間日期之間的轉(zhuǎn)換
- JS動(dòng)態(tài)日期時(shí)間的獲取方法
- js獲取日期:昨天今天和明天、后天
- JS獲取及驗(yàn)證開始結(jié)束日期的方法
相關(guān)文章
jQuery實(shí)現(xiàn)選中行變色效果(實(shí)例講解)
下面小編就為大家?guī)硪黄猨Query實(shí)現(xiàn)選中行變色效果(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07jQuery實(shí)現(xiàn)簡(jiǎn)單的下拉菜單導(dǎo)航功能示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)簡(jiǎn)單的下拉菜單導(dǎo)航功能,涉及jQuery針對(duì)頁面元素的遍歷與節(jié)點(diǎn)修改相關(guān)操作技巧,需要的朋友可以參考下2017-12-12Html5的placeholder屬性(IE兼容)實(shí)現(xiàn)代碼
Placeholder是HTML5新增的另一個(gè)屬性,當(dāng)input或者textarea設(shè)置了該屬性后,該值的內(nèi)容將作為灰字提示顯示在文本框中,當(dāng)文本框獲得焦點(diǎn)時(shí),提示文字消失。以前要實(shí)現(xiàn)這效果都是用JavaScript來控制才能實(shí)現(xiàn) , firefox、google chrome等表示對(duì)其支持 , 唯獨(dú)IE不支持2014-08-08方便實(shí)用的jQuery checkbox復(fù)選框全選功能簡(jiǎn)單實(shí)例
這篇文章介紹了jQuery checkbox復(fù)選框全選功能的代碼實(shí)例,有需要的朋友可以參考一下2013-10-10jQuery.ajax 跨域請(qǐng)求webapi設(shè)置headers的解決方案
需要通過服務(wù)器端設(shè)置響應(yīng)頭、正確響應(yīng)options請(qǐng)求,正確設(shè)置 JavaScript端需要設(shè)置的headers信息方能實(shí)現(xiàn),本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08jQuery asp.net 用json格式返回自定義對(duì)象
客戶端用一個(gè)html頁面調(diào)用一個(gè)ashx文件(一般http處理程序),返回 json格式的自定義對(duì)象2010-04-04基于jQuery實(shí)現(xiàn)滾動(dòng)切換效果
這篇文章主要為大家詳細(xì)介紹了基于jQuery實(shí)現(xiàn)滾動(dòng)切換效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12