Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

191
Vistas
¿Existe un patrón de expresiones regulares para la validación del rango de páginas personalizado en javascript y reaccionar?

Necesito una expresión regular para secuencias de página que

partidos :

  • 1
  • 1, 4-5
  • 1, 4-5, 8, 11, 13-14

pero no coincide :

  • 1,,,,
  • 1, 4-5-
  • 1, 4--------2233-----,,,,

He probado los siguientes patrones pero no funcionan:

 /^(\d*-\d*,?|\d*,?)*$/ /^(\d*-{1}\d*,?|\d*,?)*$/

También quiero validar la entrada del usuario mientras el usuario escribe, por lo que el patrón debe permitir seguimiento - , en ciertos casos. El ejemplo de código React para permitir la entrada con un patrón particular se ve así:

 const customPageInputChange = (e) => { if(e.target.value.match(/.../) !== null) { setCustomPage(e.target.value) } }

Consulte https://jsfiddle.net/mayankshukla5031/4zqwq1fj/ para ver un ejemplo completo con validación de entrada.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Una posible expresión regular:

 ^(\d+(-\d+)?, )*\d+(-\d+)?$

Consulte https://regex101.com/r/txVh3e/1 para casos de prueba.

Si también desea verificar si las páginas aumentan, una expresión regular no es realmente adecuada, y debe optar por verificar las cadenas mediante programación.

Si desea validar la entrada del usuario mientras el usuario está escribiendo, necesita una expresión regular que permita el seguimiento - y , . Una posible expresión regular:

 ^(\d+(-\d+)?, ?)*(\d+-?\d*)?$

Consulte https://regex101.com/r/rKx6lq/1 para ver casos de prueba y https://jsfiddle.net/qtb4yd7s/ para ver una demostración.

about 4 years ago · Juan Pablo Isaza Denunciar

0

podrías usar

 ^\d+(?:-\d+)?(?:,\s*\d+(?:-\d+)?)*$

En Javascript, puede usar regex.test(str) para devolver un valor booleano para ver si el patrón coincide.

En partes, el patrón coincide:

  • ^ Comienzo de cadena
  • \d+ Coincide con 1+ dígitos
  • (?:-\d+)? Coincidencia opcional - y 1+ dígitos
  • (?: Grupo de no captura para hacer coincidir como una parte completa
    • ,\s* Coincide con una coma y caracteres de espacio en blanco opcionales
    • \d+(?:-\d+)? Igual que el patrón anterior.
  • )* Cierre el grupo de no captura y, opcionalmente, repita para que coincida con una sola ocurrencia
  • $ Fin de la cadena

Ver una demostración Regex

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda