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> 
   
 

 
  Re: Expresion Regular Telefonos
 Re: Expresion Regular Telefonos  Re: Expresion Regular Telefonos
 Re: Expresion Regular Telefonos 
 Re: Expresion Regular Telefonos
 Re: Expresion Regular Telefonos  
 
 Este tema le ha gustado a 1 personas
Este tema le ha gustado a 1 personas