Esta es la solución más válida que encomtrarás aportar, sin embargo obsérvala detenidamente y analiza si es compatible a tu proyecto.
Solución:
¿Hay alguna manera de limitar una expresión regular a 100 caracteres CON expresión regular?
Su ejemplo sugiere que le gustaría obtener un número desde el interior de la expresión regular y luego usar este número para colocar una longitud máxima en otra parte que coincida más adelante en la expresión regular. Esto generalmente no es posible en un solo paso. Su mejor apuesta es tener dos expresiones regulares separadas:
- uno para que coincida con la longitud máxima que le gustaría usar
- uno que usa el valor extraído previamente para verificar que su propia coincidencia no exceda la longitud especificada
Si solo desea limitar la cantidad de caracteres que coinciden con una expresión, la mayoría de las expresiones regulares admiten límites mediante el uso de llaves. Por ejemplo,
d3-d3-d4
coincidirá con los números de teléfono (EE. UU.): exactamente tres dígitos, luego un guión, luego exactamente tres dígitos, luego otro guión, luego exactamente cuatro dígitos.
Asimismo, puede establecer límites superiores o inferiores:
d5,10
significa “al menos 5, pero no más de 10 dígitos”.
Actualizar: El OP aclaró que está tratando de limitar el valorno la longitud. mi nueva respuesta es no uses expresiones regulares para eso. Extraiga el valor, luego compárelo con el máximo que extrajo del parámetro de tamaño. Es mucho menos propenso a errores.
Si desea restringir la entrada válida a valores enteros entre 1 y 100, esto lo hará:
^([1-9]|[1-9][0-9]|100)$
Explicación:
- ^ = inicio de entrada
- () = múltiples opciones para combinar
- primer argumento [1-9] – coincide con cualquier entrada entre 1 y 9
- | = O separador de argumentos
- Segundo Argumento [1-9][0-9] – entradas de partidos entre 10 y 99
- Último argumento 100 – Se explica por sí mismo: coincide con las entradas de 100
Este NO ACEPTARÁ: 1. Cero – 0 2. Cualquier número entero precedido por un cero – 01, 021, 001 3. Cualquier número entero mayor que 100
¡Espero que esto ayude!
Gez
Si quieres números del 1 al 100:
100|[1-9]d?