網頁輸入框日期型有效性判定一網打盡 (轉)
[著者]zosatapo
[聯絡]dertyang@263
我利用正則寫的日期型網頁輸入框資料是否有效的判定。
包含閏年的處理,有興趣正規表示式的同行,以及需要對網頁中日期進行
很好判定的朋友可以參照一下。同時函式支援自我日期輸入形式定義。
1#輔助函式(閏年判定)
function isLeapYear(year)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{
return true;
}
return false;
}
2#判定主函式
function dateValidation(,format)
{
var regexp,value,index;
var year,month,day;
var iyear,imonth,iday;
var fmt,regfmt,ordfmt;
var dateArray;
if(isObject(object))
{
value=object.value;
}
else if(isString(object)&&!isEmpty(object))
{
value=object;
}
else
{
return false;
}
if(isEmpty(format))
{
return false;
}
fmt=new Array("yyyy/mm/dd","mm/dd/yyyy","dd/mm/yyyy");
regfmt=new Array("/^([0-9]{4})/([0-9]{2})/([0-9]{2})$/","/^([0-9]{2})/([0-9]{2})/([0-9]{4})$/","/^([0-9]{2})/([0-9]{2})/([0-9]{4})$/");
ordfmt=new Array("123","312","321");
format=format.toLowerCase();
for(index=0;index
if(format==fmt[index])
{
eval('regexp='+regfmt[index]+';');
iyear=parseInt(ordfmt[index].charAt(0));
imonth=parseInt(ordfmt[index].charAt(1));
iday=parseInt(ordfmt[index].charAt(2));
break;
}
}
if(index==fmt.length)
{
alert("Date Format Not Supported!");
return false;
}
if(regexp.test(value)){
//alert("Date is matched with Format!");
dateArray=value.match(regexp);
year=dateArray[iyear];
month=dateArray[imonth];
day=dateArray[iday];
//alert("The Date you have filled is:nYear:"+year+"nMonth:"+month+"nDay:"+day);
if(year<2001)
{
alert("Year must be greater than 2001!");
return false;
}
if(month<0||month>12)
{
alert("Month must range from 1 to 12!");
return false;
}
if(day<0||day>31)
{
alert("Day must range from 1 to 31!");
return false;
}
else
{
if(month==2)
{
if(isLeapYear(year)&&day>29)
{
alert("In Month 2,Day must range from 1 to 29!");
return false;
}
if(!isLeapYear(year)&&day>28)
{
alert("In Month 2,Day must range from 1 to 28!");
return false;
}
}
if((month==4||month==6||month==9||month==11)&&(day>30))
{
alert("In this Month ,Day must range from 1 to 30!");
return false;
}
}
}
else
{
alert("Date isn't matched with Format!nDate Format:"+format);
return false;
}
return true;
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991252/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 網頁輸入法打不了中文怎麼辦 win10網頁輸入法打不了中文如何解決網頁Win10
- Apache Hudi核心概念一網打盡Apache
- 獲取網頁中的密碼和文字輸入框的內容 (轉)網頁密碼
- 一網打盡列舉操作 .net core
- 一網打盡非同步神器CompletableFuture非同步
- 深入SQLite,一網打盡“危險操作”SQLite
- 從一次輸入框無法輸入的bug,談如何限制輸入框輸入型別型別
- 網際網路產品運營知識一網打盡
- 類載入、物件例項化知識點一網打盡物件
- 透徹,分散式事務一網打盡分散式
- Python-OpenCV —— 基本操作一網打盡PythonOpenCV
- Spring IOC知識點一網打盡!Spring
- 一網打盡當下NoSQL型別、適用場景及使用公司SQL型別
- 伺服器防火牆設定一網打盡伺服器防火牆
- 一網打盡JVM垃圾回收知識體系JVM
- 網狀敘事研究:看《博德之門3》一“網”打盡沉浸感
- 把JavaScript標準庫之陣列一網打盡JavaScript陣列
- Python 進階之路 (五) map, filter, reduce, zip 一網打盡PythonFilter
- 多個執行緒順序列印問題,一網打盡執行緒
- rocketmq-spring : 實戰與原始碼解析一網打盡MQSpring原始碼
- 一網打盡2013最常用的NoSQL資料庫SQL資料庫
- "探索未來智慧:AI技術一網打盡!"(推薦收藏)AI
- jquery連線html頁面做一個彈出框輸入jQueryHTML
- 6個自媒體必備網站,全網素材一網打盡,良心分享,趕緊收藏網站
- 有關日期手工輸入驗證、日期彈出框、數值輸入驗證、必須輸入驗證等(共三個檔案)
- Python 一網打盡<排序演算法>之先從玩轉氣泡排序開始Python排序演算法
- GitHub 中文排行榜,高分優秀中文專案一網打盡!Github
- Excel弊端“一網打盡”,這款報表工具有點東西!Excel
- .NET Core Configuration 配置項知識點一網打盡!
- Flutter 密碼輸入框 驗證碼輸入框Flutter密碼
- win10網頁無法輸入中文怎麼解決_win10網頁不能輸入中文怎麼辦Win10網頁
- react輸入框輸入中文bugReact
- phpMyAdmin 網頁打不開PHP網頁
- 網頁中文輸入法有問題怎麼辦_win10網頁用不了輸入法的解決方法網頁Win10
- 直播網站原始碼,安卓防止輸入框自動彈出網站原始碼安卓
- Navicat Premium 16:連線、管理、最佳化,一網打盡 mac/win版REMMac
- Java集合總結【面試題+腦圖】,將知識點一網打盡!Java面試題
- js禁用頁面所有輸入框以及點選事件JS事件