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

204
Vistas
Reemplazar matriz de señales dentro de un lapso

Quiero envolver cada signo en la matriz dada dentro de una etiqueta de intervalo para poder representarlo en DOM:

Aquí está la matriz de signos:

 const signs = ['!!', '?!', '!?', '...', '..', '.', '?', '!', ':', '؟!', '!؟', '؟'];

Puedo reemplazar cada signo individualmente así:

 result = result.replace(/([\:])/g, "<span class='some-class'>&nbsp;:</span>");

El código anterior puso: firmar dentro de un lapso.

¿Cómo puedo hacer esto para todos los signos de matriz sin codificarlos?

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

0

Puedes usar

 let result = "!! ?! !? ... .. . ? ! : ؟!, !؟ ؟"; const signs = ['!!', '?!', '!?', '...', '..', '.', '?', '!', ':', '؟!', '!؟', '؟']; signs.sort((a, b) => b.length - a.length); const regex = new RegExp(signs.map(x => x.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')).join('|'), 'g'); result = result.replace(regex, "<span class='some-class'>&nbsp;$&</span>"); console.log(result)

Aquí,

  • signs.sort((a, b) => b.length - a.length) ordena los elementos de la matriz de signs por longitud en orden descendente
  • signs.map(x => x.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')) - escapa todos los caracteres especiales en los elementos para que coincidan con caracteres literales dentro de una expresión regular
  • ....join('|') - crea una expresión regular de alternancia
  • new RegExp(..., 'g') - define un objeto RegExp que coincide con todas las ocurrencias de patrones en la cadena
  • $& en el patrón de reemplazo inserta el valor de coincidencia.
about 4 years ago · Juan Pablo Isaza Denunciar

0

Podrías usar:

 result = signs.map(sign => "<span class='some-class'>&nbsp;" + sign + "</span>");

o si desea usar expresiones regulares, sería demasiado complicado:

 result = signs.map(sign => sign.replace(/(.+)/g, "<span class='some-class'>&nbsp;$1</span>"));
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