|    
			
				19/03/2008, 09:54
			
			
			  | 
  |   |  |  |  Fecha de Ingreso: septiembre-2006 
						Mensajes: 28
					 Antigüedad: 19 años, 1 mes Puntos: 0 |  | 
  |  Expresion Regular Telefonos  
  Hola buen día, tengo una función actualmente que mientras se escribe valida un formato (patrón) por ej: 123-45-67 y llega hasta ahí...y lo hace bien, he intentado modificar el código para que reciba estos formatos  123-45-67                       (teléfono de 7 dígitos)
 (123)-456-78-90             (teléfono celular 10 dígitos)
 (012)-345-67-89-(0123) (telefono de 7 digitos pero con codigo de area y extensión)
 
 (claro no requiero que funcione con paréntesis es solo para ilustrar el ejemplo).
 
 Me ha sido complicado hacerlo, he aquí el código por si alguien le interesa
 funciona con estos formato 123-45-67 y 123-456-78-90
 
 en caso de que también les sea difícil hacerlo, Si me pueden colaborar con las expresiones regulares que me permitan solucionar este problema por el momento.
 
 Gracias.
 
 
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 
 <head>
 <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
 <meta name="author" content="Wilmar">
 
 <title>Untitled 2</title>
 <script type="text/javascript">
 var patron = new Array(3,2,2);
 var patron2 = new Array(3,3,2,2);
 function ValidarFormatoTelefono(objeto,sep,pat,numeros){
 if(objeto.valant != objeto.value){
 valor = objeto.value        // valor del objeto
 largo = valor.length        // tamaño del objeto
 valor = valor.split(sep)    // toma el valor y lo va separando
 valor2 = ''
 for(r=0;r<valor.length;r++){
 valor2 += valor[r]        // valor2 es un array auxiliar que contiene la cadena
 }
 if(numeros){                     // Si el parametro es true, evaluar la ocurrencia de
 for(z=0;z<valor2.length;z++){  // una letra y con valor2.replace la elimina mientras
 if(isNaN(valor2.charAt(z))){ // escribe
 letra = new RegExp(valor2.charAt(z),"g")
 valor2 = valor2.replace(letra,"")
 }
 }
 }//Fin if(numeros)
 valor = ''
 valor3 = new Array()
 for(s=0; s<pat.length; s++){     					// aqui se genera la cadena segun el patron
 valor3[s] = valor2.substring(0,pat[s])  // y cada vez que se digita un numero evalua
 valor2  = valor2.substr(pat[s])         // la posicion y comienza darle formato
 }
 for(q=0;q<valor3.length; q++){
 if(q ==0){
 valor = valor3[q]
 }
 else{
 if(valor3[q] != ""){
 valor += sep + valor3[q]             //aqui ya termina de hacer el formato 999-99-99
 }
 }
 }
 objeto.value  = valor
 objeto.valant = valor
 }//Fin if(objeto.valant != d.value)
 }
 
 </script>
 </head>
 <body>
 
 <input name="txtTelefono" value="" onkeyup="ValidarFormatoTelefono(this,'-',patron,true);">
 <br>
 <br>
 <input name="txtTelefono" value="" onkeyup="ValidarFormatoTelefono(this,'-',patron2,true);">
 
 </body>
 </html>
     |