Validação de campos utilizando expressões regulares

   O exemplo que se segue, mostra como podemos validar campos utilizando expressões regulares:


<script>

   function mascara(o,f){

       v_obj=o

       v_fun=f

       setTimeout("execmascara()",1)

   }


   function execmascara(){

       v_obj.value=v_fun(v_obj.value)
   }


   function leech(v){

      v=v.replace(/o/gi,"0")

       v=v.replace(/i/gi,"1")

       v=v.replace(/z/gi,"2")

       v=v.replace(/e/gi,"3")

       v=v.replace(/a/gi,"4")

       v=v.replace(/s/gi,"5")

       v=v.replace(/t/gi,"7")

       return v

   }


   function soNumeros(v){
  
       return v.replace(/\D/g,"")
   }


   function telefone(v){

            //Remove tudo o que não é dígito
       v=v.replace(/\D/g,"")                

         //Adiciona parênteses em volta dos dois primeiros dígitos
       v=v.replace(/^(\d\d)(\d)/g,"($1) $2")

         //Adiciona hífen entre o quarto e o quinto dígitos
       v=v.replace(/(\d{4})(\d)/,"$1-$2")   
     
      return v

   }


   function cpf(v){

         //Remove tudo o que não é dígito
       v=v.replace(/\D/g,"")                   
        
         //Coloca um ponto entre o terceiro e o quarto dígitos
       v=v.replace(/(\d{3})(\d)/,"$1.$2")      

       v=v.replace(/(\d{3})(\d)/,"$1.$2")      

         //de novo (para o segundo bloco de números)
         //Coloca um hífen entre o terceiro e o quarto dígitos
       v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2")

     return v

   }


   function cep(v){

         //Remove tudo o que não é dígito
       v=v.replace(/D/g,"")               
      
         v=v.replace(/^(\d{5})(\d)/,"$1-$2")

      return v

   }
 

   function cnpj(v){

         //Remove tudo o que não é dígito
       v=v.replace(/\D/g,"")                          
      
         //Coloca ponto entre o segundo e o terceiro dígitos
         v=v.replace(/^(\d{2})(\d)/,"$1.$2")            

        //Coloca ponto entre o quinto e o sexto dígitos
       v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3")

         //Coloca uma barra entre o oitavo e o nono dígitos
       v=v.replace(/\.(\d{3})(\d)/,".$1/$2")          

         //Coloca um hífen depois do bloco de quatro dígitos
       v=v.replace(/(\d{4})(\d)/,"$1-$2")             

     return v
   }
 

   function romanos(v){

         //Maiúsculas
       v=v.toUpperCase()            

         //Remove tudo o que não for I, V, X, L, C, D ou M
       v=v.replace(/[^IVXLCDM]/g,"")
   
       while(v.replace(/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,"")!="")

      v=v.replace(/.$/,"")

       return v
   }
 

   function site(v){

       v=v.replace(/^http:\/\/?/,"")

       dominio=v

       caminho=""

       if(v.indexOf("/")>-1)

           dominio=v.split("/")[0]

           caminho=v.replace(/[^\/]*/,"")

       dominio=dominio.replace(/[^\w\.\+-:@]/g,"")

       caminho=caminho.replace(/[^\w\d\+-@:\?&=%\(\)\.]/g,"")

       caminho=caminho.replace(/([\?&])=/,"$1")

       if(caminho!="")dominio=dominio.replace(/\.+$/,"")

          v="http://"+dominio+caminho

       return v
   }
</script>
 


<h1>Exemplos de expressões regulares</h1>

    <label for="inumeros">Apenas números:

    <input id="inumeros" onkeypress="mascara(this,soNumeros)" /></label>

    <label for="itelefone">Número Telefone:

  <input id="itelefone" onkeypress="mascara(this,telefone)" maxlength="14" /></label>

    <label for="icpf">CPF:

    <input id="icpf" onkeypress="mascara(this,cpf)" maxlength="14" /></label>

    <label for="icep">CEP:

    <input id="icep" onkeypress="mascara(this,cep)" maxlength="9" /></label>

    <label for="icnpj">CNPJ:

    <input id="icnpj" onkeypress="mascara(this,cnpj)" maxlength="18" /></label>

    <label for="iromanos">Números Romanos:

    <input id="iromanos" onkeypress="mascara(this,romanos)" maxlength="18" /></label>

  

Comentários

Postar um comentário

Postagens mais visitadas deste blog

O QUE É BROADCASTING?

Desativar tecla F5 e CRTL+R utilizando JavaScript

Códigos Prontos em Pascal