Foros del Web » Programando para Internet » Javascript »

Validar que un número empiece por valor determinado

Estas en el tema de Validar que un número empiece por valor determinado en el foro de Javascript en Foros del Web. Buenas tardes a todo@s Perdón por mi ignorancia, pero necesito validar con Javascript un campo en el que se introduce un número de teléfono. Para ...
  #1 (permalink)  
Antiguo 07/04/2005, 09:01
 
Fecha de Ingreso: marzo-2005
Mensajes: 21
Antigüedad: 19 años, 1 mes
Puntos: 0
Exclamación Validar que un número empiece por valor determinado

Buenas tardes a todo@s

Perdón por mi ignorancia, pero necesito validar con Javascript un campo en el que se introduce un número de teléfono. Para ello, el campo sólo debe admitir número de 9 digitos que empìecen por 6, 8 o 9.

Podéis ayudarme??
La verdad es que ya estoy desesperado
  #2 (permalink)  
Antiguo 07/04/2005, 09:25
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola Moloko1508

Supongamos que este es tu campo:

<input type="text" onblur="validar(this)" />

Esta función te validaría el número inicial y si no es correcto manda otra vez el foco para que lo corrijan:
Código PHP:
function validar(obj) {
  
num=obj.value.charAt(0);
  if(
num!='6' && num!='8' && num!='9') {
    
alert('Debe empezar por 6, 8 ó 9');
    
obj.focus();
  }

Saludos,
  #3 (permalink)  
Antiguo 07/04/2005, 09:43
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Está muy bien tu código, Javier (como siempre) pero te ha faltado comprobar si tiene 9 cifras...
Código PHP:

function validar(obj) {
  
num=obj.value.charAt(0);
  if(
num!='6' && num!='8' && num!='9') {
    
alert('Debe empezar por 6, 8 ó 9');
    
obj.focus();
  }
if(
obj.value.length<9){
alert('Debe tener 9 cifras')
obj.focus();
}

__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #4 (permalink)  
Antiguo 07/04/2005, 10:03
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola KarlanKas

Lo había hecho aposta para ver si te dabas cuenta Bueno, vale, me has pillado Para redimirme he modificado un poco tu modificada función:
Código PHP:
function validar(obj) {
  
nume=0txt='El número debe '
  
num=obj.value.charAt(0);
  if(
obj.value.length<9){
    
nume++;
    
txt+=' tener 9 cifras ';
  }
  if(
num!='6' && num!='8' && num!='9') {
    
nume++;
    
txt+= (nume==2) ? 'y ' '';
    
txt+= 'empezar por 6, 8 ó 9';
  }
  if(
nume>0) {
    
alert(txt);
    
obj.focus;
  }

Saludos,
  #5 (permalink)  
Antiguo 07/04/2005, 10:08
 
Fecha de Ingreso: marzo-2005
Mensajes: 21
Antigüedad: 19 años, 1 mes
Puntos: 0
Muchísimas gracias a los dos... es justo lo que necesitaba :)
Por cierto, que buen rollito hay por aquí no?? Me quedo con vuestros nicks para el futuro ;P
Saludos de nuevo
Moloko
  #6 (permalink)  
Antiguo 07/04/2005, 10:14
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Si, el buen rollito y las ganas de aprender/ayudar son lo mejor del Foro
  #7 (permalink)  
Antiguo 07/04/2005, 10:58
 
Fecha de Ingreso: marzo-2005
Mensajes: 21
Antigüedad: 19 años, 1 mes
Puntos: 0
Todavía con algunas dudas... :(

Buenas de nuevo

Perdón por volver a molestar, pero es que no consigo integrar del todo el código...
La función funciona muy bien por si sola para el campo del teléfono, pero yo ya tengo una función que valida el formulario (el resto de campo), y no se como integrar la función que me habéis pasado para que funcione dentro de la validación del form....

El código que tengo para validar el form es:

Código HTML:
<script language="JavaScript">
<!--

function reponse(myoption) {
  var count = myoption.length;
  for (var i = 0; i < count; i++) {
    if (myoption[i].checked == true) {
      return myoption[i].value;
    }
  }
  return "";
}

function IsNumeric(variable)
	{
	var reg = new RegExp("^[0-9]*$","g");
  	if (!reg.test(variable)) return false;
	else return true;
	}
	
function IsPlaintext(variable)
	{
	var reg = new RegExp("^[a-zA-Z ]*$","g");
  	if (!reg.test(variable)) return false;
	else return true;
	}	

function IsAlphaNumeric(variable)
	{
	var reg = new RegExp("^[0-9a-zA-Z]*$","g");
  	if (!reg.test(variable)) return false;
	else return true;
	}	
	
function validar(obj)
	{
	nume=0; txt='El número debe '
	num=obj.value.charAt(0);
	if(obj.value.length<9){
		num++;
		txt+=' tener 9 cifras ';
	}
	if(num!='6' && num!='9') {
		txt+= (nume==2) ? 'y ' : '';
		txt+= 'empezar por 6, 8 ó 9';
	}
	if (num>0) {
		alert(txt);
		obj.focus;
		}
	}



/////////////////////////////////          
//    FUNCION VALIDACION       //
/////////////////////////////////          

function validation(form_TT2)  {
          if (form_TT2.BILL_NAME.value == "")    {
               alert ("Debe rellenar el apartado relativo al Nombre");
               form_TT2.BILL_NAME.focus();
               return false;
          }
          if(!(IsPlaintext(form_TT2.BILL_NAME.value)))
          {
               alert ("No ha rellenado correctamente los datos relativos a su Nombre. Introduzca únicamente letras.");
               form_TT2.BILL_NAME.focus();
               return false;
          }		  	  		  
          if (form_TT2.BILL_ADDRESS.value == "")  {
               alert ("Debe rellenar el campo relativo a su Dirección con la dirección completa");
               form_TT2.BILL_ADDRESS.focus();
               return false;
          }
          if (form_TT2.BILL_ADDRESS_NUMBER.value == "")  {
               alert ("Debe introducir únicamente el Número de su calle");
               form_TT2.BILL_ADDRESS_NUMBER.focus();
               return false;
          }		  
          if (form_TT2.BILL_CITY.value == "")    {
               alert ("Debe rellenar el campo relativo a la Población");
               form_TT2.BILL_CITY.focus();
               return false;
          }
          if(!(IsPlaintext(form_TT2.BILL_CITY.value)))
          {
               alert ("No ha rellenado correctamente los datos relativos a su Población. Introduzca únicamente letras.");
               form_TT2.BILL_CITY.focus();
               return false;
          }				  
          if (form_TT2.BILL_PROVINCE.value == "")    {
               alert ("Debe rellenar el campo relativo a la Provincia");
               form_TT2.BILL_PROVINCE.focus();
               return false;
          }
          if(!(IsPlaintext(form_TT2.BILL_PROVINCE.value)))
          {
               alert ("No ha rellenado correctamente los datos relativos a su Provincia. Introduzca únicamente letras.");
               form_TT2.BILL_PROVINCE.focus();
               return false;
          }				  
	  		  		  
          [B][COLOR=Blue]if (form_TT2.CONTACT_TELF.value == "")      {
               alert ("Debe rellenar el apartado relativo al teléfono");
               form_TT2.CONTACT_TELF.focus();
               return false;
          }[/COLOR][/B]

          if (form_TT2.CONTACT_EMAIL.value == "")   {
               alert ("Debe rellenar el campo relativo al E-mail");
               form_TT2.CONTACT_EMAIL.focus();
               return false;
          }
          //comprobar el valor del e-mail
        	var reg = new	RegExp("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$");
    	    if (!reg.test(form_TT2.CONTACT_EMAIL.value)) {
		           form_TT2.CONTACT_EMAIL.focus();
  		         alert("La dirección de E-mail que Vd ha introducido no es válida");
		           return false;
	        } 
		            
          return true;

}

//-->
</script> 
Ahora mismo este código, a pesar de incluir vuestra función, sólo me comprueba que el campo no se deje vacío.

Muchas gracias de antemano por vuestra ayuda
Saludos
Moloko
  #8 (permalink)  
Antiguo 07/04/2005, 11:04
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
... la función es incompleta; no le habeis incluído ninguna variable de nombre pepe
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




La zona horaria es GMT -6. Ahora son las 17:32.