validate - replace by regex javascript
RegEx: ¿Cómo puedo hacer coincidir todos los números mayores de 49? (5)
Soy algo nuevo en las expresiones regulares y estoy escribiendo la validación para un campo de cantidad donde las expresiones regulares deben ser utilizadas.
¿Cómo puedo hacer coincidir todos los números mayores o iguales a 50?
Lo intenté
[5-9][0-9]+
pero eso solo coincide 50-99. ¿Hay una manera simple de hacer coincidir todos los números posibles mayores de 49? (solo se utilizan enteros)
Intente un grupo condicional que coincida con 50-99
o cualquier cadena de tres o más dígitos:
var r = /^(?:[5-9]/d|/d{3,})$/
Prueba este regex:
[5-9]/d+|/d{3,}
Sé que ya hay una buena respuesta publicada, pero no permitirá ceros iniciales. Y no tengo la reputación suficiente para dejar un comentario, así que ... Aquí está mi solución que permite los ceros a la izquierda:
Primero, hago coincidir los números del 50 al 99 (con posibles ceros iniciales):
0*[5-9]/d
Luego haga coincidir números de 100 y más (también con ceros a la izquierda):
0*[1-9]/d{2,}
Agréguelos junto con un "o" y envuélvalo para que coincida con toda la oración:
^0*([1-9]/d{2,}|[5-9]/d)$
¡Eso es!
Siguiente coincide con todos mayores o iguales a 11100
:
^([1-9][1-9][1-9]/d{2}/d*|[1-9][2-9]/d{3}/d*|[2-9]/d{4}/d*|/d{6}/d*)$
Para mayor o igual a 50
:
^([5-9]/d{1}/d*|/d{3}/d*)$
Ver patrón y modificar a cualquier número. También sería genial encontrar algunos operadores recursivos hacia adelante / hacia atrás para números grandes.
El hecho de que el primer dígito tenga que estar en el rango de 5-9
solo se aplica en el caso de dos dígitos. Por lo tanto, verifique eso en el caso de 2 dígitos y permita más dígitos directamente:
^([5-9]/d|/d{3,})$
Esta expresión regular tiene anclajes de inicio / finalización para asegurarse de que esté marcando todos los dígitos, y la cadena representa un número. El |
significa "o", entonces [5-9]/d
o cualquier número con 3 o más dígitos. /d
es simplemente un atajo para [0-9]
.
Edición: Para rechazar números como 001
:
^([5-9]/d|[1-9]/d{2,})$
Esto fuerza al primer dígito a no ser cero en el caso de 3 o más dígitos.