• Jobs
  • About Us
  • Jobs
    • Home
    • Jobs
    • Courses and challenges
  • Businesses
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

96
Views
Regex para el árbol de hashtags tarda demasiado en ejecutarse

En nuestra aplicación tenemos temas que el usuario puede crear, y cada tema debe tener su propio hashtag (o jerarquía de hashtags). Tenemos este tipo de expresiones regulares para la validación:

 const REGEX_HASHTAG = /^(#[w]?((\/?)([a-z0-9]+)+)+)(,\s{0,1}#[a-z0-9]?((\/?)([a-z0-9]+)+)+)*$/g;

Lo que necesito es que el usuario pueda crear hashtags que tengan una estructura como esta:

  1. (#) símbolo
  2. Texto en minúsculas
  3. Barra oblicua (/) seguida de texto en minúsculas para crear una jerarquía

Y también los usuarios pueden poner comas (y espacios en blanco opcionales) seguidos de un nuevo hashtag o jerarquía de hashtag. Cuando pongo demasiadas letras y hago una barra al final, Regex deja de funcionar, tarda demasiado en ejecutarse. ¿Qué estoy haciendo mal?

regexr.com/6hpqo

over 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Hay bastantes cuantificadores anidados y partes opcionales, que pueden causar retrocesos catastróficos cuando no hay coincidencia.

Podrías escribir el patrón como

 ^#[a-z0-9]+(?:\/[a-z0-9]+)*(?:,\s*#[a-z0-9]+(?:\/[a-z0-9]+)*)*$
  • ^ Comienzo de cadena
  • #[a-z0-9]+ Match # y 1+ repeticiones de los caracteres enumerados en la clase de caracteres
  • (?:\/[a-z0-9]+)* Opcionalmente repetir / y la misma clase de carácter
  • (?: grupo de no captura
    • ,\s* Coincide con una coma y caracteres de espacio en blanco opcionales
    • #[a-z0-9]+(?:\/[a-z0-9]+)* El mismo patrón que en la primera parte
  • )* Cerrar el grupo de no captura y opcionalmente repetirlo
  • $ Fin de la cadena

Demostración de expresiones regulares

over 3 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 Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Show me some job opportunities
There's an error!