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

155
Views
Buscar y reemplazar contenido entre etiquetas html

Tengo datos JSON algo como esto.

 productMessages: [ { 'errorOccurred': true, 'message': 'Nicht mehr verfügbarrer Auslaufartike <articleNo>32210544030</articleNo> der Vorrat reicht <articleNo>32210544031</articleNo>', 'productCode': '2222222222', 'quantity': 3.0, 'type': 'ERROR' }, ]

En la clave del mensaje, ahora quiero reemplazar el número de artículo 10107030 y 10107030 con parámetros de URL como este https://example.some.com/locale/locale/products/32210544030.html https://example.some.com/locale /locale/products/32210544031.html

El número de artículo (32210544030 y 32210544031) debe adjuntarse al parámetro URL.

He hecho algunas cosas, pero solo funciona para un artículo Sin etiqueta. No funciona si tengo varios artículos Sin etiquetas en la respuesta.

 let match = message.match("<articleNo>(.*?)</articleNo>"); // find article number tag if (match) { // Create URL // window.app.props.url.adp = 'https://example.some.com/locale/locale/products/{productId}.html'; const url = window.app.props.url.adp.replace('{productId}', match[1]); const newMessage = message.replace('<articleNo>', `<a href='${url}'>`).replace('</articleNo>', '</a>'); return newMessage; }

He intentado replaceAll y matchAll sin suerte.

Gracias de antemano.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Cuando se trata de marcado, generalmente es mejor aplicar un análisis adecuado en lugar de métodos de expresión regular. En el siguiente fragmento, creé un <div> como un contenedor temporal en el que luego podría usar métodos DOM para trabajar en los elementos articleno :

 const productMessages=[ { 'errorOccurred': true, 'message': 'Nicht mehr verfügbarer Auslaufartikel <articleNo>32210544030</articleNo> der Vorrat reicht <articleNo>32210544031</articleNo>', 'productCode': '2222222222', 'quantity': 3.0, 'type': 'ERROR' } ]; app={props:{url:{adp:'https://example.some.com/locale/locale/products/{productId}.html'}}}; function addLinks(msg){ const d=document.createElement("div"); d.innerHTML=msg; d.querySelectorAll("articleno").forEach(a=>a.innerHTML=app.props.url.adp.replace("{productId}",a.innerHTML)); return d.innerHTML; } productMessages.forEach(pm=>pm.message=addLinks(pm.message)); console.log(productMessages);

about 4 years ago · Juan Pablo Isaza Report

0

Usar replaceAll

 /** * @type {String} */ let message = "Nicht mehr verfügbarrer Auslaufartike <articleNo>32210544030</articleNo> der Vorrat reicht <articleNo>32210544031</articleNo>"; let str = message.replaceAll(/<articleNo>(.*?)<\/articleNo>/g, function (match, id) { let anchor = `<a href = "https://myproductsite.com/products/${id}" ></a>`; return anchor; }); console.log(str);
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!