浏览 2077 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-06-14
本来是需要取得前1个月的年月表示和验证是否在前5个月内,但是为了今后关于“n”的需求,所以对已完成的js方法做了改进。 //验证年月格式为yyyymm var verifyDateType = function(date){ var re = new RegExp("^[1-9]{1}[0-9]{3}((0[1-9]{1})|(1[0-2]{1}))$"); if(!re.test(date)){ return false; } return true; }; //验证输入年月是否为前n个月 var verifyMonIsPreN = function (n,pdate){ var date = pdate.toString(); //输入的年 var inputYear = date.substring(0,4); //输入的月 var inputMon = date.substring(4,date.length); //当前月 var nowMon = new Date().getMonth()+1; //当前年 var nowYear = new Date().getFullYear(); if(((nowYear - inputYear) == 0 && inputMon < nowMon && inputMon > 0 && nowMon - n <= inputMon)){ //同一年时,要求输入月应小于当前月,当前月的前n月不大于输入月。 return true; }else if((nowYear - inputYear) == 1 && (nowMon - 1) < n && inputMon > (12-(n-(nowMon-1)))){ //不同年时,要求当前年是输入年的后一年,当前年以过去的月数应小于n,输入年应大于某个月,该月为:当前年以过m个月,需在向前数n-m个月。 return true; }else{ return false; } }; //获取前n月的年月 var preMonth = function(n){ var datePre = new Date(); var nowYearPre = datePre.getFullYear(); var nowMonthPre = datePre.getMonth()+1; var preMonth = 0; var result = ""; //需要向前nyear个年 var nyear = Math.floor(n/12); //需要向前nmon个月 var nmon = n%12; //向前月数大于等于当前月时,向前年数加一。 if(nmon >= nowMonthPre){ nyear++; } //向前月数小于等于今年已过月数 if(nmon <= nowMonthPre-1){ preMonth = nowMonthPre-nmon; }else{ //今天已过m个月,需再向前去n-m个月。 preMonth = 12 - (nmon-(nowMonthPre-1)) + 1; } result = (nowYearPre-nyear)+""+getMonInMM(preMonth); return result; }; //返回MM格式的月 var getMonInMM = function(mon){ if(mon < 10){ return "0"+mon; }else{ return mon; } }; //验证电话号码 var verifyTel = function(){ var tel = $service_no.val(); if(tel == ""){ showDialog(2,"请输入号码",null); return false; } var re = new RegExp("^[+]{0,1}([0-9]{3,4})?([-]{0,1})?([0-9]{7,8})+$"); if(!re.test(tel)){ showDialog(2,"号码格式错误",null); $service_no.val(""); return false; } return true; }; 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-06-14
支持下你的验证方法
还得做回复测试 悲剧 |
|
返回顶楼 | |