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

316
Vistas
Extraiga la URL hasta el espacio en blanco o la etiqueta <br> usando Regex con Javascript

Tengo una cadena como:

 Webcam recording https://www.example.com/?id=456&code=123

o como:

 Webcam recording https://www.example.com/?id=456&code=123<br><b>test<b>

Para extraer la URL del primer ejemplo que usé: var reg_exUrl = /\bhttps?:\/\/[^ ]+/g;

Ahora traté de extender Regex para que tome la primera coincidencia hasta el espacio en blanco (final de línea) o la etiqueta <br> .

Este fue mi intento:

 var reg_exUrl = /\b(https?:\/\/[^ ]+)(\<br\>)/g;

Lo que se ve bien en https://regex101.com/r/gudNab/1 y aparece como dos coincidencias diferentes.

Pero al usar Regex en Javascript, la etiqueta <br> siempre se incluye en el enlace.

Usando var matches = line.match(reg_exUrl); me da con matches[0] :

 https://www.example.com/?id=456&code=123<br>

en lugar del deseado https://www.example.com/?id=456&code=123

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Si desea seleccionar texto antes de <br> , puede usar una búsqueda anticipada positiva. https?:\/\/.*?(?=<br>)

Agregar $ y \n para un final anticipado de la entrada: https?:\/\/.*?(?=<br>|$|\n)

 const regexp = /https?:\/\/.*?(?=<br>|$|\n)/; const testString = "Webcam-Aufnahme https://www.example.com/file?id=959559110184937375.mp4&code=4yrn1ev<br>**test**"; console.log(testString.match(regexp)[0])

Ver en regex101

about 4 years ago · Santiago Trujillo Denunciar

0

Obtiene la coincidencia completa ya que está usando matches[0] pero tiene 2 grupos de captura donde la parte sin <br> está en el grupo de captura 1.

Puede obtener ese valor de grupo usando coincidencia si elimina el indicador global /g .

 var line = "Webcam recording https://www.example.com/?id=456&code=123<br><b>test<b>\n"; var reg_exUrl = /\b(https?:\/\/[^ ]+)(\<br\>)/; var matches = line.match(reg_exUrl); console.log(matches[1]);

Si desea que ambos ejemplos coincidan, puede usar un patrón sin un cuantificador no codicioso mediante el uso de una clase de carácter negado que coincida con cualquier carácter excepto < , y solo coincida si no está seguido directamente por br>

El patrón coincide:

  • \bhttps?:\/\/
  • [^\s<]* Opcionalmente, haga coincidir cualquier carácter excepto un carácter de espacio en blanco o <
  • (?: grupo de no captura
    • <(?!br>) Coincide con < si no le sigue directamente br>
    • [^\s<]* Opcionalmente, haga coincidir cualquier carácter excepto un carácter de espacio en blanco o <
  • )* Cerrar el grupo de no captura y, opcionalmente, repetir

 const regex = /\bhttps?:\/\/[^\s<]*(?:<(?!br>)[^\s<]*)*/; [ "Webcam-Aufnahme https://www.example.com/file?id=959559110184937375.mp4&code=4yrn1ev<br><b>test<b><br>", "Webcam-Aufnahme https://www.example.com/file?id=959559110184937375.mp4&code=4yrn1ev" ].forEach(s => { const m = s.match(regex); if (m) { console.log(m[0]); } });

about 4 years ago · Santiago Trujillo 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