登録検証の枠組み


登録機能はウェブサイトの基本機能ですが、検証はいつも書き換えが必要です.面倒くさいです.
  ですから、簡単なフレームワークを作りました.パラメータを変更することで簡単な検証ができます.
<script language="javascript">
        var Valid=new Object();
        function $(id){
            return document.getElementById(id);
        }
        function showAlert(message){
              alert(message);
        }
        function showDiv(message,id){
              var str=document.getElementById(id);
              str.innerHTML=message;
        }
        function api(id,reg,message,haveOrNot,div){
              var str=document.getElementById(id).value;
              var flag=true;
              if(typeof haveOrNot=="undefined")  haveOrNot=true;
                  if((str==null||str=="")&&!haveOrNot){
                        flag=false;
                        message=message+"    !";
                  }
		  else if((!reg.exec(str))&&(!((str==null||str=="")&&haveOrNot))){
                        flag=false;
                        message=message+"     !";                  		        
		  } 
                  if(!flag){
                        if(typeof div=="undefined")  showAlert(message);
                        else showDiv(message,div);
                  }
		  return flag;
        }
        //id         id ,,minLength      ,maxLength      
        //haveOrNot    ,true      ,false    
        //div      ,       , alert        ,    ,         id 
     Valid.Name=function name(id,minLength,maxLength,haveOrNot,div){	      
	      var reg=eval("/^([a-z]){"+minLength+","+maxLength+"}$/");
              var message="   ";
              return api(id,reg,message,haveOrNot,div);    
	}
        Valid.Email=function email(id,haveOrNot,div){	      
	      var reg=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
              var message="  ";
              return api(id,reg,message,haveOrNot,div);    
	}
        Valid.Ps=function ps(id,minLength,maxLength,haveOrNot,div){	      
	      var reg=eval("/^([a-z]){"+minLength+","+maxLength+"}$/");
              var message="  ";
              return api(id,reg,message,haveOrNot,div);    
	}
        Valid.Rps=function rps(rps_id,ps_id,div){
              var rps=$(rps_id).value;
              var ps=$(ps_id).value;
              var flag=true;
              var message="";
              if(rps==""||rps==null){
                   flag=false;
                   message="        !";
              }
              else if(rps!=ps){
                   flag=false; 
                   message="         !";
              }
              if(!flag){
                 if(typeof div=="undefined")  showAlert(message);
                 else showDiv(message,div);
              }
              return flag;
        }
        
        Valid.Phone=function phone(id,haveOrNot,div){	      
	      var reg=/^\d{11}/;
              var message="   ";
              return api(id,reg,message,haveOrNot,div);    
	}
        Valid.Address=function address(id,haveOrNot,div){
              var reg=/^(.)*$/;
              var message="  ";
              return api(id,reg,message,haveOrNot,div);    
        }
</script>
 
Valid.Nameのユーザー名は検証して、彼は5つのパラメーターがあります.
                    ID:認証するユーザ名のあるテキストドメインID        (必須)
       minLength:ユーザー名の最小長さ                         (必須)
      maxLength:ユーザ名の最大長さ                         (必須)
       haveOrNot:ユーザー名は空いていますか?                         (デフォルトはtrueで、trueは空でもいいです.falseは空ではいけないと言います.)
                   div:ヒント情報を表示する層ID                    (書き込みは、値がない場合は、提示情報をalertで表示します)
 
以下はValid.Nameを例にとって使ってみます.
 新しいhtmlページのコードは以下の通りです.
 http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"<>html xmlns="http://www.w3.org/1999/xhtml""