JavaScript - numeros con 2 decimales

 
Vista:
sin imagen de perfil

numeros con 2 decimales

Publicado por jhean carlos (4 intervenciones) el 21/05/2012 17:05:33
como estan
tengo un script pero no puedo corregirlo

quiero que me acepte 4 numeros enteros y dos decimales
pero cuando introdusco numeros solo me acepta tres numeros y dos decimales

alguien me pude ayudar
ejemplo:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<SCRIPT LANGUAGE="JavaScript">
function NumCheck(e, field)
{
key = e.keyCode ? e.keyCode : e.which
// backspace 
if (key == 8) return true
// 0-9 
if (key > 47 && key < 58) {
	if (field.value == "") return true
	regexp = /.[0-9]{2}$/
	return !(regexp.test(field.value))
} // . 
if (key == 46) {
	if (field.value == "") return false
	regexp = /^[0-9]+$/
	return regexp.test(field.value)
} // other key 
return false
}
</script>
 
<input type="text" name="long_tramo" id="long_tramo"  onkeypress="return NumCheck(event, this)"/>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

numeros con 2 decimales

Publicado por xve (2100 intervenciones) el 21/05/2012 21:58:58
Hola Jhean, para ello, tienes que modificar esta linea:
1
regexp = /.[0-9]{2}$/

Ahora te aceptara hasta 4 caracteres.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

numeros con 2 decimales

Publicado por xve (2100 intervenciones) el 22/05/2012 23:21:35
Mil, perdones, lo puse tal cual tu lo tenias... tienes que cambiar el 2 por un 3... así:
1
regexp = /.[0-9]{3}$/

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

numeros con 2 decimales

Publicado por vicky (1 intervención) el 20/12/2013 14:31:34
Con esta ultima solución regexp = /.[0-9]{3}$/ puedo ingresar 4 enteros pero después del punto me dejar ingresar hasta 3 decimales y quiero 2 decimales nada mas. Como se podría hacer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

numeros con 2 decimales

Publicado por xve (2100 intervenciones) el 21/12/2013 09:36:12
Hola Vicky, simplemente cambia el {3} por un {2}...

1
regexp = /.[0-9]{2}$/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

numeros con 2 decimales

Publicado por Rosenberg Vasquez (1 intervención) el 04/03/2014 20:19:34
Esta instruccion solo acepta [un caracter][0-9][0-9]
1
regexp = /.[0-9]{2}$/
Ejemplo: 000 ó .95 ,etc.

Haciendo unos cambios a tu código. así queda la función. Espero te sirva


La llama a la función:
1
txtNumeroDecimal.Attributes.Add("onkeypress", "return SoloNumeroDecimal(event,this)")

La función:
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
function SoloNumeroDecimal(e, field) {
    key = e.keyCode ? e.keyCode : e.which
    // backspace
    if (key == 8) return true
 
    // 0-9 a partir del .decimal  
    if (field.value != "") {
        if ((field.value.indexOf(".")) > 0) {
            //si tiene un punto valida dos digitos en la parte decimal
            if (key > 47 && key < 58) {
                if (field.value == "") return true
                //regexp = /[0-9]{1,10}[\.][0-9]{1,3}$/
                regexp = /[0-9]{2}$/
                return !(regexp.test(field.value))
            }
        }
    }
    // 0-9 
    if (key > 47 && key < 58) {
        if (field.value == "") return true
        regexp = /[0-9]{10}/
        return !(regexp.test(field.value))
    }
    // .
    if (key == 46) {
        if (field.value == "") return false
        regexp = /^[0-9]+$/
        return regexp.test(field.value)
    }
    // other key
    return false
}


Si deseas saber mas de expresión regular quizá esta página pueda ayudar.
http://rubular.com/r/YDfHr5T5sQ

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

numeros con 2 decimales

Publicado por Juan Carlos (1 intervención) el 30/07/2014 19:35:24
Perdón por retomar un posible hilo antiguo.
He probado la función primera y funciona perfecta en los navegadores de escritorio pero en android no funciona.
No controla los caracteres se traga las letras y varios puntos decimales¿?
He probado en Ipad y funciona correctamente.
Los errores de mal funcionamiento se producen en una tableta Lenovo android y una Samsung.
¿Alguién sabe si en android hay que utilizar otros objetos?
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar