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]
-------------------------------------------------------------------------