elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Pregunta: ¿Como pasar '27' a 27? (javascript)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pregunta: ¿Como pasar '27' a 27? (javascript)  (Leído 193 veces)
MiguelCanellas


Desconectado Desconectado

Mensajes: 582



Ver Perfil
Pregunta: ¿Como pasar '27' a 27? (javascript)
« en: 13 Septiembre 2020, 22:32 »

Estoy teniendo problemas, quiero validar del lado del cliente si un valor ingresado es un numero y si ese numero es un entero pero está este problema.

digamos que el dato es '27' o "27",
las función que uso dirá que esto no es un entero, probé y la función que uso para saber si es un numero si funciona pero para saber si es un entero no funciona.

Código
  1. var value = '27';
  2.  
  3. if(!is_NaN(value)) // si es un numero
  4. {
  5.      if(Number.isInteger(value)) // si es un entero (acá me vienen los problemas porque me devuelve false cuando todos sabemos que 27 si es un entero.
  6.      {
  7.               // [...]
  8.      }
  9. }
  10.  

La solución que se me ocurre es ver si existe una función que convierta el "27" a 27 (int) con javascript.


En línea

EdePC
Colaborador
***
Desconectado Desconectado

Mensajes: 1.270



Ver Perfil
Re: Pregunta: ¿Como pasar '27' a 27? (javascript)
« Respuesta #1 en: 13 Septiembre 2020, 23:33 »

Number.isInteger(value) comprueba que value sea del tipo Integer

Para hacer la conversión de tipos rápida puedes usar:

Código
  1. var value = '27';
  2.  
  3. if(!is_NaN(value)) // si es un numero
  4. {
  5.      if(Number.isInteger(+value))
  6.      {
  7.               // [...]
  8.      }
  9. }

- Nótese el + delante de value


En línea

MiguelCanellas


Desconectado Desconectado

Mensajes: 582



Ver Perfil
Re: Pregunta: ¿Como pasar '27' a 27? (javascript)
« Respuesta #2 en: 14 Septiembre 2020, 01:20 »

Gracias! En un tema pasado me habían explicado eso del + (creo que fuiste vos) me había olvidado... Gracias!
En línea

@XSStringManolo
Colaborador
***
Desconectado Desconectado

Mensajes: 2.083


Turn off the red ligth


Ver Perfil WWW
Re: Pregunta: ¿Como pasar '27' a 27? (javascript)
« Respuesta #3 en: 14 Septiembre 2020, 01:24 »

'27' es un string de tipo primitivo.
"27" es un string de tipo primitivo.
"27".toString() es un string de tipo primitivo que de forma interna se convierte a tipo referenciado con autoboxing. Es decir para aplicarle el método, se convierte en un tipo referenciado/objeto String tal que puedes hacer manualmente con el constructor new String(27);

Esto mismo se aplica a los números. Puedes tener el tipo primitivo 27, el tipo referenciado Number(27), muy similar a +" 27" creado por type cohercion y también tienes el parseInt("27") que tiene algunas diferencias.

Para convertir a número entero, debes definir primero lo que es un numero entero. Porque puede ser un número entero matemáticamente. Puede ser un tipo entero que es una implementación concreta y especifíca de un lenguaje de programación sobre el concepto matemático con un tamaño de bytes predefinido, etc.

También debes considerar como javascript trabaja con objetos para almacenar valores.
Es { numero: 27 } un entero, un entero dentro de un objeto, una propiedad numérica dentro de un objeto?
Es [27] un entero? Es un array? Es un entero dentro de un array?
Es Number(27) un entero? Un objeto? Un entero dentro de un objeto?
Es window.miNumero = 27 un entero? Un objeto? Una propiedad? Una variable?
Es /27/ un entero? Un objeto? Una expresión regular?
Es /d+/ un entero? Un trozo de un entero? Un objeto? Una expresión regular?
Es 27.5212 un entero sin truncar? Un entero sin aproximar? Un flotante?

Concluyendo, qué quieres detectar tú? Porque en base a tus necesidades/objetivos, tu concepción de lo que es un entero, la solución va a diferir.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines