Necesito una expresión regular para manejar el promedio de calificación iraní, la expresión regular debería cubrir todas estas reglas
ejemplos:
20 cierto
19.99 verdadero
14.5 verdadero
12 cierto
4 cierto
0.22 verdadero
00.02 verdadero
10 cierto
14.23 cierto
09.23 cierto
21 falso
30 falso
123 falso
12.222 falso
09. falso
4. falso
.2 falso
099 falso
1.123 falso
Probé este patrón y funciona:
/(?<!\S)(([0-1]?[0-9])(.)([0-9]?[0-9])|([0-1][0-9] )|\d{1}|(20))(?!\S)/
Si se trata de hacer coincidir una cadena con un promedio de calificaciones iraní, entonces este patrón de expresiones regulares coincidirá solo con los verdaderos.
^(?:[01]?[0-9]|20)(?:[.][0-9]{1,2})?$
^: comienzo de una línea o cadena
(?:[01]?[0-9]|20): número de 00 o 0 a 19, o 20
(?:[.][0-9]{1,2})?: opcional 1 a 2 decimales
$: fin de línea o cadena