JavaScript常用検証スクリプトのまとめ


転載は出典:http://eksliang.iteye.com/blog/2098985  
     これらの検证スクリプトは、ここ数年の开発の総括です.今日は彼を出して、分かち合います.今は私のプロジェクトの中でも使っています.日付検証、比較、非空検証、身分証明書検証、数値検証、Email検証、電話検証などを含めて…!
       これらの方法は二つの特徴があります.フォームの検証ですから、二つの実施形態を提供しています.最初に入ったのはフォームのIDです.もう一つはフォームの値です.
        下の添付ファイルにこのスクリプトのソースファイルが添付されています.
/**
 *@author Ickes
 *             
 */
function _$(id){
	return document.getElementById(id);
}
/**
 * @author Ickes
 *        ,            
 * @param str<br>
 *                 
 * @param type<br>
 *        -                <br>
 *        -   L  l        <br>
 *        -   R  r        <br>
 * @return
 */
function trim(str,type){
	 if(type=="" || type==null){
		 return str.replace(/(^\s*)|(\s*$)/g, "");   
	 }else if(type.toLocaleLowerCase()=="r"){
		 return  str.replace(/(\s*$)/g,"");  
	 }else if(type.toLocaleLowerCase()=="l"){
		 return  str.replace(/(^\s*)/g,""); 
	 } 
}

/****
 *@author Ickes
 *   id              
 *    null   true
 **/
function checkNull(_id){
	var v=_$(_id).value;
	v=trim(v);
	if(v==''){
		return true;
	}else{
		return false;
	}
}

/**
 *@author Ickes
 *         
 * @return
 *          :yyyy-MM-dd
*/
function getDate(){
	var d;
	var s='';
    d = new Date();                           
    s +=  d.getFullYear() + "-";   
    // 
    var moth=d.getMonth() + 1;
    if(moth<10){
        s += "0"+moth+ "-";    
    }else{
      	s += moth + "-";
    }
    // 
    var date=d.getDate();
    if(date<10){
      	s += "0"+date;  
    } else{
        s += date;  
    }                      
    return(s);                               
}

/**
 * @author Ickes
 *           
 * @return
 *          :yyyy-MM-dd hh:mm:ss
*/
function getDateTime(){
	var d;
	var s='';
    d = new Date();                           
    s +=  d.getFullYear() + "-";   
    // 
    var moth=d.getMonth() + 1;
    if(moth < 10){
        s += "0" +moth+ "-";    
    }else{
      	s += moth + "-";
    }
    // 
    var date=d.getDate();
    if(date < 10){
      	s += "0" + date + " ";  
    } else{
        s += date+" ";  
    }  
    //  
    var hours=d.getHours();
    if(hours < 10){
    	s += "0" +hours+ ":";
    }else{
    	s +=hours+":";
    }
    //  
    var minutes = d.getMinutes();
    if(minutes < 10){
    	s += "0" +minutes+ ":";
    }else{
    	s += minutes+ ":";
    }
    //  
    var seconds = d.getSeconds();
    if(seconds < 10){
    	s += "0"+seconds;
    }else{
    	s += seconds;
    }
    return(s);                               
}


/****
 *@author Ickes
 *     <br>
 *@param str
 *              <br>
 *@  :
 *      2012-12-12  <br>   <br> 2012/12/12 
 **/
function formatDate(str){
	return str.split("-").join("/");
}
/**
 *@author Ickes
 *         ,      2012-12-12 2012/12/12 <br>
 *@param _startId
 *                 Id
 *@param _endId
 *                 Id
 *@retur
 *                      true<br>
 **/
function compareDateId(_statId,_endId){
	var startDate = formatDate(_$(_statId).value);
	var endDate   = formatDate(_$(_endId).value);
	var time1=Date.parse(startDate);
	var time2=Date.parse(endDate);
    if(time1 > time2){
		return false;
	}
	return true;
}
/**
 *@author Ickes
 *         ,      2012-12-12 2012/12/12 <br>
 *@param start
 *           
 *@param end
 *           
 *@retur
 *                      true<br>
 **/
function compareDateStr(start,end){
	var startDate = formatDate(start);
	var endDate   = formatDate(end);
	var time1=Date.parse(startDate);
	var time2=Date.parse(endDate);
    if(time1 > time2){
		return false;
	}
	return true;
}


/****
 *@author Ickes
 *     
 * @param _id 
 *               id
 * @param url 
 *           
 * @param method
 *               :post
 */
function _submit(_id,url,method){
	if(method=="" || method==null){
		method="post";
	}
	_$(_id).method=method;
	_$(_id).action=url;
	_$(_id).submit();
}


 /**
  * @author Ickes
  *        __          <br>
  * @return
  *             
  */
 function byteLen(s) { 
	var l = 0; 
	var a = s.split(""); 
	for (var i=0;i<a.length;i++) { 
		if (a[i].charCodeAt(0)<299) { 
			l++; 
		} else { 
			l+=2; 
		} 
	} 
		return l; 
}
/****
 * @author Ickes
 *   id              
 * @param
 *           Id
 * @return
 *              true,   false
 **/
function isNumId(_id){
	var value=_$(_id).value;
	//          
	value=trim(value);
	if(value==''){
        return false;
    }
    var flg=isNaN(value);
	return !flg;
}

/**
 * @author Ickes
 *   id              <br>
 * @param _value
 *             
 * @return
 *              true,   false
 **/
function isNum(_value){
	//          
	value=trim(_value);
	if(value==''){
        return false;
    }
    var flg=isNaN(value);
	return !flg;
}


/****
 * @author Ickes
 *  id          email<br>
 *@param
 *        id    
 *@return
 *	        false<br>
 *	           email   true
 **/
function isEmail(_id){
	 var srt=/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
	 var email=_$(_id).value;
	 if(email==null || email==""){
		 return false;
	 }
     if(srt.test(email)) {
         //   
         return true;
     }
     else{
         //    
       return false;
     }
}

/**
 *@author Ickes
 *       	
 *@param _id:
 *             id  
 *@return
 *             false<br>
 *                     true
 */
function isTelId(_id){
	var str=_$(_id).value;
    if(str==null || trim(str)==""){
    	return false;
    }
    var str	= trim(str);
	var myphone = /^[\-0-9+()\/]{1,32}$/;
    if(myphone.test(str)){
    	return true;
    } 
    return false;
}

/**
 *@author Ickes
 *             	
 *@param str:
 *               
 *@return
 *                     true
 */
function isTel(str){
    if(str==null||trim(str)==""){
    	return false;
    }
    var str	= trim(str);
	var myphone = /^[\-0-9+()\/]{1,32}$/;
    if(myphone.test(str)){
    	return true;
    } 
    return false;
}

/**
 * @author Ickes
 *        -     x   
 * @param num:
 *               
 * @return   
 *                      true
 */
function isCardNo(num){
	num=trim(num);
    var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
    var error;
    var varArray = new Array();
    var intValue;
    var lngProduct = 0;
    var intCheckDigit;
    var intStrLen = num.length;
    var idNumber = num;       
    var checkDate = function(date) {
      return true;
    } 
    
    // initialize
    if ((intStrLen != 15) && (intStrLen != 18)) {
        //error = "           !";
        //alert(error);
        //frmAddUser.txtIDCard.focus();
        return false;
    }    
    // check and set value
    for(i=0;i<intStrLen;i++) {
        varArray[i] = idNumber.charAt(i);
        if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
            //error = "        !.";
            //alert(error);
            //frmAddUser.txtIDCard.focus();
            return false;
        } else if (i < 17) {
            varArray[i] = varArray[i]*factorArr[i];
        }
    }
    if (intStrLen == 18) {
        //check date
        var date8 = idNumber.substring(6,14);
        if (checkDate(date8) == false) {
            //error = "           !.";
            //alert(error);
            return false;
        }        
        // calculate the sum of the products
        for(i=0;i<17;i++) {
            lngProduct = lngProduct + varArray[i];
        }        
        // calculate the check digit
        intCheckDigit = 12 - lngProduct % 11;
        switch (intCheckDigit) {
            case 10:
                intCheckDigit = 'X';
                break;
            case 11:
                intCheckDigit = 0;
                break;
            case 12:
                intCheckDigit = 1;
                break;
        }        
        // check last digit
        if (varArray[17].toUpperCase() != intCheckDigit) {
            //error = "        !   : " + intCheckDigit + ".";
            //alert(error);
            return false;
        }
    } 
    else{        //length is 15
        //check date
        var date6 = idNumber.substring(6,12);
        if (checkDate(date6) == false) {
            //alert("         !.");
            return false;
        }
    }
    //alert ("Correct.");
    return true;
}

/**
 * @author Ickes
 *        -     x   
 * @param _id:
 *             Id  
 * @return   
 *                       true
 */
function isCardNoId(_id){
	var num=trim(_$(_id).value);
	if(num==null || num==""){
		return false;
	}
    var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
    var error;
    var varArray = new Array();
    var intValue;
    var lngProduct = 0;
    var intCheckDigit;
    var intStrLen = num.length;
    var idNumber = num;       
    var checkDate = function(date) {
      return true;
    } 
    
    //       
    if ((intStrLen != 15) && (intStrLen != 18)) {
        return false;
    }    
    // check and set value
    for(i=0;i<intStrLen;i++) {
        varArray[i] = idNumber.charAt(i);
        if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
            //error = "        !.";
            return false;
        } else if (i < 17) {
            varArray[i] = varArray[i]*factorArr[i];
        }
    }
    if (intStrLen == 18) {
        //check date
        var date8 = idNumber.substring(6,14);
        if (checkDate(date8) == false) {
            //error = "           !.";
            //alert(error);
            return false;
        }        
        // calculate the sum of the products
        for(i=0;i<17;i++) {
            lngProduct = lngProduct + varArray[i];
        }        
        // calculate the check digit
        intCheckDigit = 12 - lngProduct % 11;
        switch (intCheckDigit) {
            case 10:
                intCheckDigit = 'X';
                break;
            case 11:
                intCheckDigit = 0;
                break;
            case 12:
                intCheckDigit = 1;
                break;
        }        
        // check last digit
        if (varArray[17].toUpperCase() != intCheckDigit) {
            //error = "        !   : " + intCheckDigit + ".";
            //alert(error);
            return false;
        }
    } 
    else{        //length is 15
        //check date
        var date6 = idNumber.substring(6,12);
        if (checkDate(date6) == false) {
            //alert("         !.");
            return false;
        }
    }
    return true;
}
/**
 * @author Ickes
 *             ,            
 * @param card
 *             
 * @return
 *              
 */
function getCardDate(card){
	var date="";
	var year="";
    var moth="";
	var day="";
	if(card.length==18){
		 date=card.substring(6,14);
		 year=date.substring(0,4);
		 moth=date.substring(4,6);
		 day =date.substring(6,8);
		 date=year+"/"+moth+"/"+day;
	}else{
		 date=card.substring(6,12);
		 year="19"+date.substring(0,2);
		 moth=date.substring(2,4);
		 day =date.substring(4,6);
		 date=year+"/"+moth+"/"+day;
	}
	return new Date(date);
}

/****
 * @author Ickes
 *   id              
 **/
function showError(_id,error){
	_$(_id).innerHTML='';
	_$(_id).innerHTML="<font color='red'>"+error+"<font>";
}