Foros del Web » Programando para Internet » Javascript »

Expresion regular, validar Nota Examen

Estas en el tema de Expresion regular, validar Nota Examen en el foro de Javascript en Foros del Web. Hola a todos, necesito una expresion regular que me valide la nota de un examen: -Como maximo 10 - Minimo 0 -Pueda tener hasta 2decimales ...
  #1 (permalink)  
Antiguo 14/02/2015, 06:35
 
Fecha de Ingreso: diciembre-2008
Mensajes: 5
Antigüedad: 15 años, 5 meses
Puntos: 0
Expresion regular, validar Nota Examen

Hola a todos, necesito una expresion regular que me valide la nota de un examen:
-Como maximo 10
-Minimo 0
-Pueda tener hasta 2decimales
-Puedas introducir tanto .(punto) como ,(coma)

Estoy haciendo pruebas con este script

Código Javascript:
Ver original
  1. function validarNota() {
  2.     var nota = 9.25;
  3.     var formatoNota = /^[10] || [\d{1} [._-] \d{0,2}]/;
  4.     if (!nota || formatoNota.test(nota)){
  5.         alert('Nota mal introducida');
  6.     }else{
  7.         alert('Nota bien introducida');
  8.     }


Con la validacion la idea es que o bien es un 10 (y no habria decimales), o bien es 1digito, seguido de "." ó "," con 0, 1 ó 2decimales
Pero no funciona


Muchisimas gracias a todos
  #2 (permalink)  
Antiguo 14/02/2015, 08:05
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Expresion regular, validar Nota Examen

buenas...
no te funciona porque en realidad la expresión es mucho mas complejo. podrías hacerlo de dos formas: crear una expresión por cada caso (10, x.xx, 0), o spagetti code, una expresión bien compleja que evalue los tres casos.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 14/02/2015, 08:27
 
Fecha de Ingreso: diciembre-2008
Mensajes: 5
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Expresion regular, validar Nota Examen

pensaba que seria facil, despues de todo solo compruebas numeros y 2caracteres
si se hace una expresion por cada caso, luego seria concatenarlas con varios if verdad??
pues me pondre con ello haber si sale algo en claro

grax!
  #4 (permalink)  
Antiguo 14/02/2015, 08:39
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Expresion regular, validar Nota Examen

si haces cada expresión, tendrías que comprobarlos con varios if. estuve haciendo pruebas y no es tan complejo escribir la expresión con los tres casos. la base parte de dos subexpresiones separadas por un OR. a un lado evaluas si la cadena es "10". en el otro lado del OR, evaluas que el número inicie dentro del rango de números del 0 al 9. luego, en un parentesis opcional, pareas un punto o coma seguido por un número repetido una o dos veces.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 14/02/2015, 09:45
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 8 meses
Puntos: 578
Respuesta: Expresion regular, validar Nota Examen

Básicamente es lo que dice zerokilled, pero debes definir bien los límites de ambos miembros de la expresíon para que no tome caracteres extra como válidos:

Código:
/^(10|\d([.,]\d{1,2})?)$/

Última edición por PHPeros; 14/02/2015 a las 13:15
  #6 (permalink)  
Antiguo 15/02/2015, 08:36
 
Fecha de Ingreso: diciembre-2008
Mensajes: 5
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Expresion regular, validar Nota Examen

Cita:
Iniciado por PHPeros Ver Mensaje
Básicamente es lo que dice zerokilled, pero debes definir bien los límites de ambos miembros de la expresíon para que no tome caracteres extra como válidos:

Código:
/^(10|\d([.,]\d{1,2})?)$/
No entiendo, es el codigo que funciona, o un seudocodigo de lo que debo hacer :)

Estoy dandole vueltas y solo se me ocurre lo que probe al principio. Que comprube si es un 10, y con un OR que introduzca 1decimal seguidas de punto o coma y 2decimales
Me estoy volvendo loco
  #7 (permalink)  
Antiguo 15/02/2015, 14:19
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 8 meses
Puntos: 578
Respuesta: Expresion regular, validar Nota Examen

El que no entiende soy yo

Código Javascript:
Ver original
  1. function validarNota(nota) {
  2.     var formatoNota = /^(10|\d([.,]\d{1,2})?)$/;
  3.     if (formatoNota.test(nota)){
  4.         alert('Nota bien introducida');
  5.     }else{
  6.         alert('Nota mal introducida');
  7.     }
  8. }
  9.  
  10. validarNota(9.25); // Bien
  11. validarNota(20); // Mal
  12. validarNota("5,8") // Bien
  13. validarNota(0.123); // Mal
  14. validarNota(10); // Bien

¿No era eso lo que querías?
  #8 (permalink)  
Antiguo 17/02/2015, 09:36
 
Fecha de Ingreso: diciembre-2008
Mensajes: 5
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Expresion regular, validar Nota Examen

Cita:
Iniciado por PHPeros Ver Mensaje
El que no entiende soy yo

Código Javascript:
Ver original
  1. function validarNota(nota) {
  2.     var formatoNota = /^(10|\d([.,]\d{1,2})?)$/;
  3.     if (formatoNota.test(nota)){
  4.         alert('Nota bien introducida');
  5.     }else{
  6.         alert('Nota mal introducida');
  7.     }
  8. }
  9.  
  10. validarNota(9.25); // Bien
  11. validarNota(20); // Mal
  12. validarNota("5,8") // Bien
  13. validarNota(0.123); // Mal
  14. validarNota(10); // Bien

¿No era eso lo que querías?
siiiiiiiii
sorry, nose porque lo probaba mal. muchisimas gracias va perfecto

Etiquetas: examen, expresion, funcion, regular
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 00:12.