Código de JavaScript - Validador numerico en tiempo real.

Imágen de perfil

Validador numerico en tiempo real.gráfica de visualizaciones


JavaScript

estrellaestrellaestrellaestrellaestrella(2)
Publicado el 16 de Marzo del 2018 por Alejandro
1.063 visualizaciones desde el 16 de Marzo del 2018. Una media de 63 por semana
Permite validar en tiempo real (mientras se esta escribiendo) que un input sea numerico.
Solo permite ingresar numeros y un punto, los demas caracteres son ignorados no escribiendose.
Se puede limitar la cantidad de enteros y decimales.

Ejemplos:
validaNumero(); //Numero sin limites. 1234n.456789n
validaNumero(4); //Numero entero de 4 caracteres y sin limete para decimales. "1234.56789n"
validaNumero(4,2); //Numero entero de 4 caracters y 2 decimales. "1234.56"
validaNumero(4,0); //Numero entero de 4 caracteres sin decimales. "1234"
validaNumero(0,2); //Numero sin entero con 2 decimales. ".12"

1

Publicado el 16 de Marzo del 2018gráfica de visualizaciones de la versión: 1
63 visualizaciones desde el 16 de Marzo del 2018. Una media de 7 por semana

1.1
estrellaestrellaestrellaestrellaestrella(2)

Actualizado el 17 de Marzo del 2018 (Publicado el 16 de Marzo del 2018)gráfica de visualizaciones de la versión: 1.1
1.001 visualizaciones desde el 16 de Marzo del 2018. Una media de 56 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Mi segundo intento.

"window.event" no pertenece a ningun estandar y aunque el codigo anterior funciona en la mayoria de navegadores, segun este enlace, no es compatible con Firefox mi navegador predeterminado.

Esta version ya es compatible con Firefox con el detalle de que requiere pasar el evento.
Ejemplos:
validaNumero(e); //Numero sin limites. 1234n.456789n
validaNumero(e,4); //Numero entero de 4 caracteres y sin limete para decimales. "1234.56789n"
validaNumero(e,4,2); //Numero entero de 4 caracters y 2 decimales. "1234.56"
validaNumero(e,4,0); //Numero entero de 4 caracteres sin decimales. "1234"
validaNumero(e,0,2); //Numero sin entero con 2 decimales. ".12"

Si alguien tiene idea de como hacer para que funcione sin pasar el evento es bienvenida su sugerencia.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<script>
	window.onload = cargaEventos;
	function cargaEventos(){
		document.getElementById('numerico').addEventListener("keypress",function(e){validaNumero(e)});
	}
 
	function validaNumero(event){
		e    = event || window.event;
		nInt = arguments[1];
		nDec = arguments[2];
		cString = e.target.value;
		if(e.charCode!=0){
			cString = cString+""+String.fromCharCode(e.charCode);
		}
 
		if(nInt===undefined){
			patron = new RegExp("(^[0-9]*[.]?[0-9]*?$)");
		}else{
			if(nDec===undefined){
				patron = new RegExp("(^[0-9]{0,"+nInt+"}$)|(^[0-9]{0,"+nInt+"}[.][0-9]*?$)");
			}else{
				if(nDec>0){
					patron = new RegExp("(^[0-9]{0,"+nInt+"}$)|(^[0-9]{0,"+nInt+"}[.][0-9]{0,"+nDec+"}$)");
				}else{
					patron = new RegExp("(^[0-9]{0,"+nInt+"}$)");
				}
			}
		}
 
		if( cString.search(patron)==-1 ){
			e.preventDefault();
		}
	}
</script>
<input id="numerico" type="text" placeholder="SOLO NUMEROS">



Comentarios sobre la versión: 1.1 (2)

Imágen de perfil
Carlos Luis
16 de Marzo del 2018
estrellaestrellaestrellaestrellaestrella
Excelente tu aporte amigo! Muchas gracias.
Responder
Imágen de perfil
xve
20 de Marzo del 2018
estrellaestrellaestrellaestrellaestrella
Muy bueno Alejandro!!!
Responder

Comentar la versión: 1.1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s4484  
Revisar política de publicidad