Foros del Web » Programando para Internet » Javascript »

Formato de numero telefónico?

Estas en el tema de Formato de numero telefónico? en el foro de Javascript en Foros del Web. Hola a todos Cómo ingreso un numero telefonico a un campo de texto de la forma en que al quitar el mouse o pasar a ...
  #1 (permalink)  
Antiguo 23/01/2007, 14:31
 
Fecha de Ingreso: febrero-2006
Mensajes: 85
Antigüedad: 18 años, 2 meses
Puntos: 0
Formato de numero telefónico?

Hola a todos

Cómo ingreso un numero telefonico a un campo de texto de la forma en que al quitar el mouse o pasar a otro campo se vea así:333-3333.

Es decir, lo ingreso así: 333333 y al pasar a otro campo quede así 333-333

Gracias por la ayuda


saludos
  #2 (permalink)  
Antiguo 23/01/2007, 15:32
Avatar de Celcius  
Fecha de Ingreso: febrero-2003
Ubicación: Lima - Perú
Mensajes: 652
Antigüedad: 21 años, 2 meses
Puntos: 5
Re: Formato de numero telefónico?

Hola a mi me salio asi:
Código PHP:
<!doctype html public "-//W3C//DTD HTML 4.01//EN">
<
html>
   <
head>
      <
title>Jugando :)</title>
      <
meta http-equiv="generator" content="PHP Designer 2005" />
<
script language="javascript">
function 
cambialo(){
    var 
numeritos document.forms[0].numero.value;
    var 
num document.forms[0].numero.value.length;
    if(
num>7){
      
document.forms[0].numero.focus();
      
alert("Lo siento, pero requerimos un numero menor a 7 caracteres");
    }else{
      var 
nuevos_numeritos="";
      for(
i=0i<numi++){
        if(
i==2){
          
nuevos_numeritos+=numeritos.charAt(i)+"-";
        }else{
          
nuevos_numeritos+=numeritos.charAt(i);
        }
      }
      
document.forms[0].numero.value nuevos_numeritos;
    }
}
</script>
   </head>

<body bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<form>
<input type="text" name="numero" onBlur="cambialo();"><br><br>
<input type="text" name="otro_campo">
</form>
</body>
</html> 
Solo que el evento focus(); solo funciona bien en Explorer pero no en firefox .. por lo que leí es un Bug de Firefox..
__________________
"Si tú conocieras el don de Dios, y quién es el que te dice: 'Dame de beber,' tú Le habrías pedido a El, y El te hubiera dado agua viva.
Sn. Juan 4:19
Jesus

Última edición por Celcius; 23/01/2007 a las 15:48
  #3 (permalink)  
Antiguo 23/01/2007, 17:43
 
Fecha de Ingreso: febrero-2006
Mensajes: 85
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: Formato de numero telefónico?

Vamos a probar, muchisimas gracias

saludos
  #4 (permalink)  
Antiguo 23/01/2007, 18:00
 
Fecha de Ingreso: febrero-2006
Mensajes: 85
Antigüedad: 18 años, 2 meses
Puntos: 0
Re: Formato de numero telefónico?

Funciona Excelente!! Gracias otra vez
  #5 (permalink)  
Antiguo 24/01/2007, 11:12
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Formato de numero telefónico?

Me ha parecido didáctico el ejemplo para plantearlo con expresiones regulares.

Otra solución válida también:
Código PHP:
<!doctype html public "-//W3C//DTD HTML 4.01//EN">
<
html>
    <
head>
        <
title>Formato numero de telefono</title>
        <
script language="javascript">
        function 
cambialo(elemento){
            var 
valorAntes elemento.value;
            
elemento.value valorAntes.replace( /^(d{3})(d{4})$/, "$1-$2" );
            var 
valorDespues elemento.value;
            if( 
valorAntes==valorDespues )
                
alert("Debes introducir siete digitos seguidos en la caja.\nEJEMPLO: 1234567");
        }
        
</script>
    </head>

    <body>
        <input type="text" name="numero" onBlur="cambialo(this);">
    </body>
</html> 
La expresión regular debe ser:
/^(\d{3})(\d{4})$/
La cual trata de encontrar el principio de la cadena (^); después tres digitos (\d{3}) que los agrupa metidos en un paréntesis para luego recordarlos y utilizarlos como $1; y por último cuatro dígitos seguidos (\d{4}) que metemos también en un paréntesis para utilizarlos luego como $2.

Luego de esto, se sustituye la incidencia por "$1-$2" que devolverá los tres dígitos, un guión, y los cuatro dígitos.



Poco a poco conseguiré que alguien utilice las expresiones regulares jeje.

Un saludo!
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #6 (permalink)  
Antiguo 24/01/2007, 11:18
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Formato de numero telefónico?

Hola derkenuke

Sin duda dicáctico pero, te ha pasado lo mismo que a mí en varias ocasiones, la etiqueta [php] se "come" la barra invertida. La expresión regular es:

Código:
elemento.value = valorAntes.replace( /^(\d{3})(\d{4})$/, "$1-$2" );
Saludos,
  #7 (permalink)  
Antiguo 24/01/2007, 11:43
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Formato de numero telefónico?

Sí, ya lo he reescrito abajo para mayor clarificación. Tendré que empezar a utilizar la etiqueta [ code ] entonces..
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #8 (permalink)  
Antiguo 24/01/2007, 12:37
Avatar de Celcius  
Fecha de Ingreso: febrero-2003
Ubicación: Lima - Perú
Mensajes: 652
Antigüedad: 21 años, 2 meses
Puntos: 5
Re: Formato de numero telefónico?

Cita:
Iniciado por derkenuke Ver Mensaje
elemento.value = valorAntes.replace( /^(\d{3})(\d{4})$/, "$1-$2" );
Super interesante, aunque da un poco de miedo

Cita:
Iniciado por derkenuke Ver Mensaje
Poco a poco conseguiré que alguien utilice las expresiones regulares jeje.
Yo estoy muy interesado por usarlas, créeme y creo que ya es hora de aprender... solo que no se donde.. voy a buscar
Cita:
Iniciado por derkenuke Ver Mensaje
Un saludo!
Otro para ti amigo!
__________________
"Si tú conocieras el don de Dios, y quién es el que te dice: 'Dame de beber,' tú Le habrías pedido a El, y El te hubiera dado agua viva.
Sn. Juan 4:19
Jesus
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:25.