Me está costando encontrar la expresión regular más adecuada para mis necesidades.
Quiero una expresión regular que solo valide números del 1 al 8, con o sin punto decimal
1 // Valid 3 // Valid 8 // Valid 2.00 // Valid 4.45 // Valid 7.60 // Valid 9 // Invalid 10 // Invalid 9.00 // Invalid 50.40 // invalid Hasta ahora esto es lo que se me ocurrió, pero ^([0-8]$\.?[0-8]*|\.[0-8]+) pero esto solo acepta números del 1 al 8, y nada con un decimal. ¿Puede alguien amablemente proporcionar una expresión regular adecuada para este ejemplo?
Supongo que sería mejor limitar las expresiones regulares al análisis de cadenas. Mi mejor enfoque sería analizar un número válido de la cadena y luego convertirlo en un número antes de validar su valor como <x
Pero si realmente desea usar expresiones regulares (y será difícil cambiarlo en caso de que lo haga), sería algo como:
^0*([0-7](\.\d+)?|8)$ Coincide con any number between 0 and 8 ... se permite el punto decimal si va seguido de números y el número válido más alto sería 7.999999999... seguido del siguiente número entero válido 8 .
Se consideran los ceros finales.