Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

TRUCO: Cómo evitar problemas con campos numéricos en JavaScript

JavaScript-logo

Cuando en un formulario Web tenemos un campo de texto (INPUT, type=text), que se utiliza para que los usuarios introduzcan números (por ejemplo su edad, un número de factura...) lo habitual es verificar su contenido con la función parseInt de JavaScript.

Imaginemos por ejemplo que hay que verificar que un campo de este tipo no sobre pase un determinado valor. Normalmente escribiríamos una condición similar a esta:

if ( parseInt(micampo.value) > valorMax ) alert("Se ha sobrepasado el máximo"); 

Un código sencillo, directo y, en apariencia, sin problemas. Pero, ¿qué pasaría si por ejemplo el usuario introduce el número '034', es decir, incluye el dígito cero precediendo al número?.

Respuesta: que parseInt en lugar de devolver el número 34 que es sin duda el que esperábamos devolverá un 28.

El motivo es que la función parseInt interpreta los textos que comienzan con un cero como números en base octal y no decimal, por lo que 034 se interpreta como el número 28 en base octal. En consecuencia, la comparación hecha en el condicional puede fallar.

SOLUCIÓN: lo más recomendable es que siempre se explicite la base con la que deseamos trabajar cuando usemos la función parseInt (y similares) en JavaScript. En el caso más habitual la base numérica con la que trabajamos es la decimal, por lo que al indicarla la expresión condicional anterior quedaría como sigue:

if ( parseInt(micampo.value, 10) > valorMax ) alert("Se ha sobrepasado el máximo");

Así evitaremos problemas :)

Si quieres aprender de verdad todos los fundamentos de JavaScript, no te pierdas mi libro. Además podrás utilizarlo como guía de estudio secuencial o bien como manual de referencia para tenerlo siempre a mano.

José M. Alarcón Aguín Fundador de campusMVP, es ingeniero industrial y especialista en consultoría de empresa. Ha escrito diversos libros, habiendo publicado hasta la fecha cientos de artículos sobre informática e ingeniería en publicaciones especializadas. Microsoft lo ha reconocido como MVP (Most Valuable Professional) en desarrollo web desde el año 2004 hasta la actualidad. Puedes seguirlo en Twitter en @jm_alarcon o leer sus blog técnico o personal. Ver todos los posts de José M. Alarcón Aguín

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.