Número real de 0 a 10, que puede contener 0, 1 o 2 decimales.
Estoy usando:
/\d{0,2}+([.]\d{0,3})?$/;
Y distintas combinaciones, pero no me sale :S
Es para JS.
Número real de 0 a 10, que puede contener 0, 1 o 2 decimales.
Estoy usando:
/\d{0,2}+([.]\d{0,3})?$/;
Y distintas combinaciones, pero no me sale :S
Es para JS.
Creo que con esa expresion estas diciendo que los 2 digitos aparezcan 1 o más veces (con el +)
Prueba a quitarle el más a ver si asi funciona. (Para el punto, escapalo con la barra \ ).
Prueba algo como:
/[0-9]{0,2}(.[0-9]{0,3})?/ (No se si en javascript los intervalos de numeros son con el - o con el punto . Sino pues pon como pusiste antes \d.
No, esto #2 no es correcto:
/[0-9]{0,2}(.[0-9]{0,3})?/
Piensa que puedes hacer por ejemplo, 99.X.
La X no importa, pero 99 segun #1 no debe poder hacerse, pues es de 0-10.
Y los decimales son 0, 1 o 2 decimales. Con {0,3}, podrian ser 3 decimales.
Asi que yo haria:
Esto es cualquier numero del 1 al 10, y pueden o no haber decimales mediante ?.
Si los hay, el punto debe existir y pueden haber 1 o 2 (maximo 2). No hace falta poner 0, porque no quieres que haya algo como "10.", por lo tanto solo habrá 1 o 2 decimales cuando los haya.
El 0 deicmales, ya se controla con el ?.
Ya pensaré una forma mejor de hacer lo del 1 al 10.
edit:
el problema es que se puede hacer 10.99, por ejemplo. Luego si no se incluye el 10 en los OR, habria que hacer algo como:
(0|1|2|3|4|5|6|7|8|9?)|10
/[0-9]{0,2}(.[0-9]{0,3})?/
/[0-9] es lo mismo que \d me imagino.
/\d{1}([.]\d{1,3})?$/;
Un número decimal (un dígito) y ahora opcionalmente "(", el carácter "." y otros decimales (uno, o dos, o tres) opcionales "?"
No me funciona
#3 El tuyo tp me va, no se si será ya cosa del resto del script :S
"var regexNota = /0|1|2|3|4|5|6|7|8|9|10(.\d{1,2})?$/;"
He probado como ves a cambiarle el [ por ( ya que en otra regex que hago una cosa similar me funciona así) y el [0-9] por \d
Quita los /^ y los $ del final.
Deja limpia la sentencia.
Por cierto,
http://java.sun.com/docs/books/tutorial/essential/regex/pre_char_classes.html
a mi me va genial. Mira el índice a la izquierda.
Aps y otra cosa, si usas la regex no como un pattern, sino como una string que luego se la pasas a una funcion de regex, haz siempre doble barra!
Por ejemplo, para poner un punto, y no la classe "cualquier cosa", haz esto
regex = "\."
edit:
cierto es que [] es por defecto OR.
Luego tiene que ser ().
(0|1|2|...)
Si le quito eso no funciona , es Javascript,
por cierto, da un poco igual con que salga 10.99 xDDD, el caso es que no lo saco, con lo chorra que es.
Bueno al final me ha andado esta:
/\d{1,2}([.]\d{1,3})?$/;
Pero antes no me iba, pero corregí otra cosilla que tenia abajo y ya anda.
Aunque no sea perfecto no os quiero quitar más tiempo. Gracias
Pero esque tanto con esto:
/[0-9]+
como con eso:
/\d{1,2}
Puedes crear numeros mas grandes que 10!
Con el primero, puedes hacer facilmente 55, o 93, o 32, o 8453, o 283773... Numero larguisimos.
Y con el segundo, 35, 67, 82, 99... numeros de 2 cifras pero mas grandes que 10!
De hecho, habria que pensar como evitar que la expresion te tomara como válido un numero que empieze por 0, por ejemplo, 0432...
Por eso sigo insistiendo con la mia:
/^(((0|1|2|3|4|5|6|7|8|9)(.[0-9]{1,2})?)|10)$/;
mm creo que es para una nota y asin puedes poner 11,99, puedes probar con esta:
/10|[0-9](,[0-9]{1,2})?$/;
The winner is #10 xDDD
Ya es más de lo que lo que ando haciendo se merece.
Muchas gracias de nuevo a ambos.