Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

193
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!