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

100
Vistas
Javascript regex flag U en Firefox no funciona

Dada la cadena de una línea (muchas etiquetas div con nombre+imagen adentro)

 <div id="img-1" class="draggable">AP2<br><img src="URL"></div><div id="img-3" class="draggable">AP6<br><img src="URL"></div><div id="img-6" class="draggable">AP5<br><img src="URL"></div>...

que se produce después de que el usuario haya arrastrado y soltado las imágenes, quiero recuperar el orden real del div.id: "1", "3", "6"...

En https://regex101.com/ escribí la expresión regular /img-([^()]*)" class/gU que funciona perfectamente: img-1" class + img-3" class + img-6" class son seleccionado. El siguiente paso es obtener 1, 3, 6 eliminando img- y " class .

Prob: en FF (Mac) recibo el mensaje de consola Uncaught SyntaxError: invalid regular expression flag U ... así que pruebo otra expresión regular /img-([^()]*)" class/g pero no funciona como esperado en regex101: todo se selecciona desde la primera img- hasta la última class : img-1" class="draggable">AP2 ---> </div><div id="img-6" class . Cambiar las banderas a /g /gi /gim da el mismo resultado.

Pero escribiendo <div id="img-1" class="draggable">AP2<br><img src="URL"></div>()<div id="img-3" class="draggable">AP6<br><img src="URL"></div>()<div id="img-6" class="draggable">AP5<br><img src="URL"></div> ( con paréntesis entre los divs) funciona.

¿Cómo explicarlo y hay otra expresión regular para capturar lo que se espera sin agregar estos ()?

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

0

Primero, no creo que este sea un problema de Firefox, sí, funciona en regex101 pero porque en el lado izquierdo no seleccionó el idioma correcto. Seleccione JS (ECMAscript, es el superconjunto) y la opción U desaparecerá.

La bandera U es para 'poco codicioso', aún no sé si algún motor JS lo admite, pero puede lograr el mismo efecto al:

 /img-([^()]*?)" class/g

con solo la bandera g. ? hace que el '*' no sea codicioso.

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