日期:2014-05-16  浏览次数:20399 次

用js实现的:获取前n月YYYYMM,验证输入年月是否在当前月的前n月内,验证YYYYMM格式的年月,简单的验证电话号码
由于项目需要,所以今天编写了如下的几个js方法。
本来是需要取得前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;
            	};