Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

127
Visualizações
Ignorar puntos y comas de RegExp

Tengo un RegExp así:

 const keywordsClone = [...alert?.keywords]; keywordsClone.sort((a, b) => (a.length > b.length ? -1 : 1)); let transcript = alert?.transcript; forEach(keywordsClone, (k) => { const regExpression = new RegExp(`(${k})`, 'ig'); //now it has exact match and case insensitive. But I need to allow . and , also. transcript = transcript.replace(regExpression, '<span class="color-dark-red">$&</span>'); }); return transcript;

Está funcionando bien en general. Pero digamos que keywordsClone tiene esta structure fire y transcript tiene esta structure. Fire Entonces no funciona aquí. Pero la transcripción tiene esta structure Fire , entonces funciona. Entonces, ¿cómo permitirlo con . y , también? ¿Alguna ayuda aquí, por favor?

ingrese la descripción de la imagen aquí

PD

alert?.keywords es una matriz de cadena: string[]

 0: "structure fire" 1: "fire showing from the second floor"

ps2

alert?.keywords

0: "en llamas"

transcript

"Este es el Departamento de Bomberos. Departamento de Bomberos. Necesito hacia 8.5 481 8.5. En referencia a un incendio desatendido Atención. El Departamento de Bomberos necesita alrededor del poste, 8.5, 8.5 para informes de un incendio de entretenimiento".

Entonces se muestra

This is the Fire Department Fire Department I need towards 8.5 481 8.5. In reference to an unattended fire Attenti<span class="color-dark-red">on. Fire</span> Department needs around the pole, 8.5, 8.5 for reports of an entertainment fire.

El problema aquí no es una coincidencia exacta. es decir, no debe seleccionar ninguno aquí.

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Qué tal esto:

 let keywords = keywords_string.split(/(?:[\.,\s])+/); const regex = new RegExp(`(?<=[\\.,\\s]|^)(${keywords.join("[\\.,\\s]+")})(?=[\\.,\\s]|$)`, 'ig'); 

 const alert = { transcript: "Something something structure. Fire is showing ... and there is fire, showing from the second floor", keywords: ["structure fire", "fire showing from the second floor"] } const keywordsClone = [...alert?.keywords]; keywordsClone.sort((a, b) => (a.length > b.length ? -1 : 1)); let transcript = alert?.transcript; keywordsClone.forEach((keywords_string) => { let keywords = keywords_string.split(/(?:[\.,\s])+/); const regex = new RegExp(`(?<=[\\.,\\s]|^)(${keywords.join("[\\.,\\s]+")})(?=[\\.,\\s]|$)`, 'ig'); transcript = transcript.replace(regex, '<span class="color-dark-red">$&</span>'); }) console.log(transcript);

Lo que genera esto del ejemplo:

something something <span class="color-dark-red">structure. Fire</span> is showing ... and there is <span class="color-dark-red">fire, showing from the second floor</span>

Explicación

Esencialmente, dividimos cada cadena de palabras clave por puntos, comas y espacios. Luego los unimos con [\.,\s] entre cada uno de ellos. Esto escapará de los puntos, comas y espacios en la transcripción.

EDITAR : Según PS-2, agregué (?<=[\\.,\\s]|^) y (?=[\\.,\\s]|$) para asegurar que la coincidencia no comienzan o terminan con una parte de otra palabra respectivamente.

about 4 years ago · Juan Pablo Isaza Relatório

0

Si uso la sintaxis JS de vainilla, obtengo lo que creo que es el resultado esperado con esto

 const tran = obj => { const keywordsClone = obj?.keywords.split(/[.,?\s+]/); keywordsClone.sort((a, b) => (a.length > b.length ? -1 : 1)); let transcript = obj?.transcript; keywordsClone.forEach(k => { const regExpression = new RegExp(`${k}`, 'ig'); console.log(regExpression) transcript = transcript.replace(regExpression, '<span class="color-dark-red">$&</span>'); }); return transcript; }; console.log(tran({keywords:"structure fire", transcript: "structure. Fire"}))

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda