segue abaixo um script de mascara, de uma analisada no mesmo e implemente
ele conforme sua necessidade.

/* -------------------------------------------------------------------------
--
 Descricao : Coloca mascara enquanto o usuario digita a
    informa��o.
 Parametros: mascara - mascara.
    cpo - campo a ser formatado.
    prx - proximo campo.
    tclPres- evento
 Retorno   :
 Globais   : -
 Utilizado no evento: onKeyDown
*/

function frmComMascara(mascara, cpo, prx, tclPres)
{
   var tcl = tclPres.keyCode;
   vr = cpo.value;
   vr = removeMask(vr);
   tam = vr.length;

   if (mascara == "999.999.999-99")
   {
      if ( tcl != 9 && tcl != 8 )
      {
       if (tam > 1 && tam <= 4)
        cpo.value =  vr.substr(0, tam -1) + '-' +
                     vr.substr(tam-1, 2);

       if ( tam > 4 && tam <= 7 )
         cpo.value = vr.substr(0, tam-4) + '.' +
                     vr.substr(tam-4, 3) + '-' +
                     vr.substr(tam-1, 2);

       if ( tam > 7 && tam < 11 )
         cpo.value = vr.substr(0, tam-7) + '.' +
                     vr.substr(tam-7, 3) + '.' +
                     vr.substr(tam-4, 3) + '-' +
                     vr.substr(tam-1, 2);
      }

      tamVr = vr.length;
      if (tamVr == 11)
         prx.focus();
   }
   else if (mascara == "9999.999.999-9")
   {
      if ( tcl != 9 && tcl != 8 )
      {
       if (tam > 0 && tam <= 3)
        cpo.value =  vr.substr(0, tam) + '-';

       if ( tam > 3 && tam <= 6 )
         cpo.value = vr.substr(0, tam-3) + '.' +
                     vr.substr(tam-3, 3) + '-' +
                     vr.substr(tam, 1);

       if ( tam > 6 && tam < 11 )
         cpo.value = vr.substr(0, tam-6) + '.' +
                     vr.substr(tam-6, 3) + '.' +
                     vr.substr(tam-3, 3) + '-' +
                     vr.substr(tam, 1);
      }

      tamVr = vr.length;
      if (tamVr == 11)
         prx.focus();
   }
   else if (mascara == "9999.9999.999/9999-99")
   {
      if ( tcl != 8 && tcl != 9)
      {
       if (tam > 1 && tam <= 5 )
        cpo.value =  vr.substr(0, tam-1) + '-' +
                     vr.substr(tam-1, 2);
       if (tam > 5 && tam <= 8)
         cpo.value = vr.substr(0, tam-5) + '/' +
                     vr.substr(tam-5, 4) + '-' +
                     vr.substr(tam-1, 2);
       if (tam > 8 && tam <= 12 )
         cpo.value = vr.substr(0, tam-8) + '.' +
                     vr.substr(tam-8, 3) + '/' +
                     vr.substr(tam-5, 4) + '-' +
                     vr.substr(tam-1, 2);
       if (tam > 12 && tam < 17)
         cpo.value = vr.substr(0, tam-12) + '.' +
                     vr.substr(tam-12, 4) + '.' +
                     vr.substr(tam-8, 3)  + '/' +
                     vr.substr(tam-5, 4)  + '-' +
                     vr.substr(tam-1, 2);
      }
      tamVr = vr.length;
      if (tamVr == 17)
         prx.focus() ;
   }

  else if (mascara == "99.999.999/9999-99")
   {
      if ( tcl != 8 && tcl != 9)
      {
       if (tam > 1 && tam <= 5 )
        cpo.value =  vr.substr(0, tam-1) + '-' +
                     vr.substr(tam-1, 2);
       if (tam > 5 && tam <= 8)
         cpo.value = vr.substr(0, tam-5) + '/' +
                     vr.substr(tam-5, 4) + '-' +
                     vr.substr(tam-1, 2);
       if (tam > 8 && tam <= 11 )
         cpo.value = vr.substr(0, tam-8) + '.' +
                     vr.substr(tam-8, 3) + '/' +
                     vr.substr(tam-5, 4) + '-' +
                     vr.substr(tam-1, 2);
       if (tam > 11 && tam < 14)
         cpo.value = vr.substr(0, tam-11) + '.' +
                     vr.substr(tam-11, 3) + '.' +
                     vr.substr(tam-8, 3)  + '/' +
                     vr.substr(tam-5, 4)  + '-' +
                     vr.substr(tam-1, 2);
      }
      tamVr = vr.length;
      if (tamVr == 14)
         prx.focus() ;
   }


  else if (mascara == "99999.999999/9999-99")
   {
      if ( tcl != 8 && tcl != 9)
      {
       if (tam > 1 && tam <= 5 )
        cpo.value =  vr.substr(0, tam-1) + '-' +
                     vr.substr(tam-1, 2);
       if (tam > 5 && tam <= 11)
         cpo.value = vr.substr(0, tam-5) + '/' +
                     vr.substr(tam-5, 4) + '-' +
                     vr.substr(tam-1, 2);
       if (tam > 11 && tam < 17 )
         cpo.value = vr.substr(0, tam-11) + '.' +
                     vr.substr(tam-11, 6) + '/' +
                     vr.substr(tam-5, 4)  + '-' +
                     vr.substr(tam-1, 2);
      }
      tamVr = vr.length;
      if (tamVr == 17)
         prx.focus() ;
   }
   else if (mascara == "9.999.999.999.999,99")
   {
      if ( tcl != 8 && tcl != 9)
      {
       if (tam > 1 && tam <= 4 )
        cpo.value =  vr.substr(0, tam-1) + ',' +
                     vr.substr(tam-1, 2);
       if (tam > 4 && tam <= 7)
         cpo.value = vr.substr(0, tam-4) + '.' +
                     vr.substr(tam-4, 3) + ',' +
                     vr.substr(tam-1, 2);
       if (tam > 7 && tam <= 10)
         cpo.value = vr.substr(0, tam-7) + '.' +
                     vr.substr(tam-7, 3) + '.' +
                     vr.substr(tam-4, 3) + ',' +
                     vr.substr(tam-1, 2);
       if (tam > 10 && tam < 13)
         cpo.value = vr.substr(0, tam-10) + '.' +
                     vr.substr(tam-10, 3) + '.' +
                     vr.substr(tam-7, 3)  + '.' +
                     vr.substr(tam-4, 3)  + ',' +
                     vr.substr(tam-1, 2);
       if (tam > 13 && tam < 15)
         cpo.value = vr.substr(0, tam-13) + '.' +
                     vr.substr(tam-13, 3) + '.' +
                     vr.substr(tam-10, 3) + '.' +
                     vr.substr(tam-7, 3)  + '.' +
                     vr.substr(tam-4, 3)  + ',' +
                     vr.substr(tam-1, 2);
      }
      tamVr = vr.length;
      if (tamVr == 15)
         prx.focus() ;
   }
   /*
   else if (mascara == "9.999.999.999.999,99")
   {
      if ( tcl != 8 && tcl != 9)
      {
       if (tam > 1 && tam <= 4 )
        cpo.value =  vr.substr(0, tam-1) + ',' +
                     vr.substr(tam-1, 2);
       if (tam > 4 && tam <= 7)
         cpo.value = vr.substr(0, tam-4) + '.' +
                     vr.substr(tam-4, 3) + ',' +
                     vr.substr(tam-1, 2);
       if (tam > 7 && tam <= 10)
         cpo.value = vr.substr(0, tam-7) + '.' +
                     vr.substr(tam-7, 3) + '.' +
                     vr.substr(tam-4, 3) + ',' +
                     vr.substr(tam-1, 2);
       if (tam > 10 && tam < 13)
         cpo.value = vr.substr(0, tam-10) + '.' +
                     vr.substr(tam-10, 3) + '.' +
                     vr.substr(tam-7, 3)  + '.' +
                     vr.substr(tam-4, 3)  + ',' +
                     vr.substr(tam-1, 2);
       if (tam > 13 && tam < 17)
         cpo.value = vr.substr(0, tam-13) + '.' +
                     vr.substr(tam-13, 3) + '.' +
                     vr.substr(tam-10, 3) + '.' +
                     vr.substr(tam-7, 3)  + '.' +
                     vr.substr(tam-4, 3)  + ',' +
                     vr.substr(tam-1, 2);
      }
      tamVr = vr.length;
      if (tamVr == 17)
         prx.focus() ;
   }

   */
   else if (mascara == "DD/MM/YYYY")
   {
      if ( tcl != 8 && tcl != 9)
      {
       if (tam > 1 && tam <= 3)
         cpo.value = vr.substr(0, tam - 1) + '/' +
                     vr.substr(tam-1, 2);
       if (tam > 3 && tam < 8)
         cpo.value = vr.substr(0, 2) + '/' +
                     vr.substr(2, 2) + '/' +
                     vr.substring(4);
      }
      tamVr = vr.length;
      if (tamVr == 8)
         prx.focus() ;
   }
   else if (mascara == "MM/YYYY")
   {
      if (tcl != 8 && tcl != 9)
      {
       if (tam > 1 && tam < 6)
         cpo.value = vr.substr(0, 2) + '/' +
                     vr.substring(2);
      }
      tamVr = vr.length;
      if (tamVr == 6)
         prx.focus() ;
   }
   else if (mascara == "9,9999")
   {
      if (tcl != 8 && tcl != 9)
      {
          if (tam > 0 && tam < 5)
             cpo.value = vr.substr(0, 1) + ',' + vr.substring(1);
      }

      tamVr = vr.length;

      if (tamVr == 5)  prx.focus() ;
   }
   else if (mascara == "HH:MM:SS")
   {
      if ( tcl != 8 && tcl != 9)
      {
       if (tam > 1 && tam <= 3)
         cpo.value = vr.substr(0, tam - 1) + ':' +
                     vr.substr(tam-1, 2);
       if (tam > 3 && tam < 8)
         cpo.value = vr.substr(0, 2) + ':' +
                     vr.substr(2, 2) + ':' +
                     vr.substring(4);
      }
      tamVr = vr.length;
      if (tamVr == 6)
         prx.focus() ;
   }
   else if (mascara == "HH:MM")
   {
      if ( tcl != 8 && tcl != 9)
      {
          if (tam > 1 && tam < 4)
            cpo.value = vr.substr(0, 2) + ':' +
                        vr.substring(2);

      }
      tamVr = vr.length;
      if (tamVr == 4)
         prx.focus() ;
   }


   else if (mascara == "999.999.999/9999-99")
   {
      if ( tcl != 8 && tcl != 9)
      {
       if (tam > 1 && tam <= 5 )
        cpo.value =  vr.substr(0, tam-1) + '-' +
                     vr.substr(tam-1, 2);
       if (tam > 5 && tam <= 8)
         cpo.value = vr.substr(0, tam-5) + '/' +
                     vr.substr(tam-5, 4) + '-' +
                     vr.substr(tam-1, 2);
       if (tam > 8 && tam <= 11 )
         cpo.value = vr.substr(0, tam-8) + '.' +
                     vr.substr(tam-8, 3) + '/' +
                     vr.substr(tam-5, 4) + '-' +
                     vr.substr(tam-1, 2);
       if (tam > 11 && tam <= 13 )
         cpo.value = vr.substr(0, tam-11) + '.' +
                     vr.substr(tam-11, 3) + '.' +
                     vr.substr(tam-8, 3) + '/' +
                     vr.substr(tam-5, 4) + '-' +
                     vr.substr(tam-1, 2);
      }
      tamVr = vr.length;
      if (tamVr == 15)
         prx.focus() ;
   }

   else if (mascara == "9999-9/99") // usar com onKeyUp
   {
      if ( tcl != 9 && tcl != 8 )
      {
       if (tam == 3)
        cpo.value =  vr.substr(0, 1) + '/' +
                     vr.substr(1, 2);

       if ( tam > 3 && tam <= 7)
         cpo.value = vr.substr(0, tam - 3) + '-' +
                     vr.substr(tam - 3, 1) + '/' +
                     vr.substr(tam - 2, 2);
      }

      tamVr = vr.length;
      if (tamVr == 7)
         prx.focus();
   }

   else if (mascara == "9999-9") // usar com onKeyUp
   {
      if ( tcl != 9 && tcl != 8 )
      {
       if (tam > 1)
         cpo.value =  vr.substr(0, tam - 1) + '-' +
                      vr.substr(tam - 1, 1);
      }

      tamVr = vr.length;
      if (tamVr == 5)
         prx.focus();
   }

   else if (mascara == "999999999-9") // usar com onKeyUp
   {
      if ( tcl != 9 && tcl != 8 )
      {
       if (tam > 1)
         cpo.value =  vr.substr(0, tam - 1) + '-' +
                      vr.substr(tam - 1, 1);
      }

      tamVr = vr.length;
      if (tamVr == 10)
         prx.focus();
   }

   else if (mascara == "999-9") // usar com onKeyUp
   {
      if ( tcl != 9 && tcl != 8 )
      {
       if (tam > 1)
         cpo.value =  vr.substr(0, tam - 1) + '-' +
                      vr.substr(tam - 1, 1);
      }

      tamVr = vr.length;
      if (tamVr == 4)
         prx.focus();
   }
   else if (mascara == "99999-9") // usar com onKeyUp
   {
      if ( tcl != 9 && tcl != 8 )
      {
       if (tam > 1)
         cpo.value =  vr.substr(0, tam - 1) + '-' +
                      vr.substr(tam - 1, 1);
      }

      tamVr = vr.length;
      if (tamVr == 6)
         prx.focus();
   }

   else
      alert("Mascara de entrada de dados n�o reconhecida");
}


/*

BackSpace = 8
Home = 36
End = 35
SetaDireita = 37
SetaEsquerda = 39
SetaCima = 40
SetaBaixo = 38
ShiftTab = 9
Shift = 16
Ctrl = 17
Alt = 18
Alt Gr = 17
PageDown = 34
PageUp = 33
Insert = 45
Delete = 46


*/

function frmComMascara1(mascara, cpo, prx, tclPres)
{
 if (document.all) // verifica se � Internet Explorer
 {
       var tcl = tclPres.keyCode;
       vr = cpo.value;
       vr = removeMask(vr);
       tam = vr.length;
       tamMask = mascara.length;
       resp = '';

       if ( tcl !=  9  && tcl != 8 && tcl != 37 && tcl != 38 && tcl != 39 &&
            tcl != 40 && tcl != 35 && tcl != 36 && tcl != 33 && tcl != 34 &&
            tcl != 45 && tcl !=46 && tcl != 16 && tcl != 17 && tcl != 18)
       {
  i = tam - 1;
                j = tamMask - 1;
               while (j >= 0 && i >= 0)
  {
if (j < 0)
alert(mascara + " j = " + j + " " + mascara.charAt(j) +
        ") i = " + i + " " + vr.charAt(i) + ") resp = "  + resp);

   if (i < tamMask)
   {
    if (mascara.charAt(j) != '9')
    {
     resp = mascara.charAt(j) + resp;
    }
    else
    {
     resp = vr.charAt(i) + resp;
     i--;
    }
    j--;
   }
   else
   {
    resp = vr.charAt(i) + resp;
    i--;
   }
  }
  cpo.value = resp;

          if (resp.length >= tamMask && prx != null)
  prx.focus();
       }
 }
}

====================================
  Marcelo Ataide Neto
  Implementador JAVA
====================================
  [EMAIL PROTECTED]
  [EMAIL PROTECTED]
  ICQ: 105594609
  +55 (65) 617-2224
  +55 (65)9983-2086
====================================
-----Mensagem original-----
De: andjose <[EMAIL PROTECTED]>
Para: java-list <[EMAIL PROTECTED]>
Data: quinta-feira, 31 de outubro de 2002 12:46
Assunto: [java-list] Formatar n�mero de telefone


BOL - tr�s anos com voc�. Venha pra festa e ganhe uma viagem!
http://especial.bol.com.br/2002/3anos
Ainda n�o tem AcessoBOL? Assine j�! http://sac.bol.com.br

Algu�m sabe como posso fazer para uma fun��o em
Java (JSP) que formate o n�mero de telefone que
� digitado pelo usu�rio ou quando o telefone �
recuperado de um banco de dados, ex:
o usu�rio digita 5519 3777 1212, gostaria
de formatar para +55 (19) 3777 1212.

Algu�m poderia me ajudar?


Grato


Anderson


------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------




------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP 
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a