Foros del Web » Programando para Internet » Javascript »

Funcion parseInt

Estas en el tema de Funcion parseInt en el foro de Javascript en Foros del Web. Hola a todos Tengo el problema que la funcion parseInt no hace bien la conversíon a un entero. En el campo teléfono que defino de ...
  #1 (permalink)  
Antiguo 30/11/2012, 09:41
 
Fecha de Ingreso: marzo-2008
Ubicación: Posadas Misiones Argentina
Mensajes: 480
Antigüedad: 16 años, 1 mes
Puntos: 1
Funcion parseInt

Hola a todos

Tengo el problema que la funcion parseInt no hace bien la conversíon a un entero.
En el campo teléfono que defino de tipo bigint en mi interface phpMyAdmin, cuando ingreso en el formulario un telefono como este : 3764380uew, la funcion que valida si es entero o no , lo tomo como entero (no me muestra el mensaje: solo debe ingresar números).
Entonces cual puede ser la solucíon para que detecte que no es entero:
Este es el código:

Cita:
<script lenguage="javascript">
function validarentero(valor){
//intento convertir a entero
//si era un entero no le afecta,si no lo era lo intenta convertir
valor=parseInt(valor)
//compruebo si es un valor numérico
if(isNaN(valor)){
//entones(no es numero) devuelvo el valor cadena vacia
return ""
}else{
//En caso contrario(Si era un número) devuelvo el valor
return valor
}
}
</script>
Gracias.
  #2 (permalink)  
Antiguo 30/11/2012, 09:53
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Funcion parseInt

Es que cuando empieza por un número y luego hay caracteres no numéricos, con parseInt solo se ignora a partir del primer caracter no numérico y el resto lo convierte a entero. Podrías usar:
Código Javascript:
Ver original
  1. if (/^[0-9]+$/.test(valor))
  2.     // es número
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 01/12/2012, 15:18
 
Fecha de Ingreso: marzo-2008
Ubicación: Posadas Misiones Argentina
Mensajes: 480
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Funcion parseInt

Hola

Disculpa pero quiero preguntarte que hace el metodo o la funcion test(valor) que esta dentro del if.

Gracias.
  #4 (permalink)  
Antiguo 01/12/2012, 15:23
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Funcion parseInt

Es un método del objeto RegExp que comprueba si el parámetro coincide con la expresión regular.
Véase: http://www.w3schools.com/jsref/jsref_obj_regexp.asp
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 01/12/2012, 16:47
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Funcion parseInt

vallidación de un número entero, ejemplo

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  5. <title>validar entero</title>
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. function validar(campo){
  9. var elcampo = document.getElementById(campo);  
  10. if(!validarEntero(elcampo.value)){
  11. elcampo.value = "";
  12. elcampo.focus();
  13. alert('Debe ingresar un número entero');
  14. }
  15. }
  16.  
  17. function validarEntero(input){
  18. return (!isNaN(input)&&parseInt(input)==input);
  19. }
  20. //]]>
  21. </head>
  22. <form action="#">
  23. <input type="text" id="entero" name="entero" value="" onkeyup="validar(this.id);" />
  24. <input type="submit" value="procesar" />
  25. </form>
  26. </body>
  27. </html>

podés cambiar por un evento onsubmit en el form

En caso de querer validar un número, entero o flotante, usas parseFloat en la función validarEntero()

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 01/12/2012, 18:01
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Funcion parseInt

el resto de cualquier entero dividido entre 1 ha de ser 0. por ende
Cita:
function fnc(valor) {
if(valor % 1 == 0) {
alert('entero');
} else {
alert('otra cosa');
}
}

var numeros = ['a', '7a', '7'];
numeros.forEach(function(n){fnc(n);});
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: formulario, funcion, parseint, php
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 10:07.