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

297
Visualizações
¿Menor o mayor que los caracteres, excepto las etiquetas html?

Necesito reemplazar menos o más que ( < > ) caracteres, pero mantengo las etiquetas html (las etiquetas simples funcionarán como <b>text</b> sin argumentos). Así que la entrada a continuación:

 <b>> 0.5 < 0.4</b> - <>

Debiera ser:

 <b>&gt; 0.5 &lt; 0.4</b> - &lt;&gt;

Todo lo que logré encontrar y editar ahora es esta expresión:

 <\/?[az][a-z0-9]*[^>\s]*>|([<>])

Agrupa los caracteres < y > pero también coincide con las etiquetas que no necesito reemplazar

UPD: Gracias a @Sree Kumar , aquí están las funciones finales:

 String.prototype.replaceAt = function (index, char) { let arr = this.split(''); arr[index] = char; return arr.join(''); }; String.prototype.escape = function () { let p = /(?:<[a-zA-Z]+>)|(?:<\/[a-zA-Z]+>)|(?<lt><)|(?<gt>>)/g, result = this, match = p.exec(result); while (match !== null) { if (match.groups.lt !== undefined) { result = result.replaceAt(match.index, '&lt;'); } else if (match.groups.gt !== undefined) { result = result.replaceAt(match.index, '&gt;'); } match = p.exec(result); } return result; };
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Pruebe esta expresión regular:

 <(?!\/?\w+>)|(?<!<\w+|<\/\w+)>

Explicación

  • <(?!\/?\w+>) encuentra todos los símbolos '<' (excepto en las etiquetas)
  • (?<!<\w+|<\/\w+)> encuentra todos los símbolos '>' (excepto en las etiquetas)

Puedes usarlos por separado:

 let str = '<b>> 0.5 < 0.4</b> - <>'; let lessThen = /<(?!\/?\w+>)/g; let greaterThen = /(?<!<\w+|<\/\w+)>/g; str = str.replace(lessThen, '&lt;'); str = str.replace(greaterThen, '&gt;'); console.log(str); // <b>&gt; 0.5 &lt; 0.4</b> - &lt;&gt;

¡NÓTESE BIEN! Solo encuentra los símbolos '<' y '>' entre etiquetas. No verifica que html sea válido. Para texto como ese <a></b> no encontrará ninguna coincidencia.

about 4 years ago · Juan Pablo Isaza Relatório

0

Aquí hay una manera de hacerlo usando grupos con nombre. Es decir, nombre su grupo deseado y búsquelo. Puede ser null o undefined a veces porque no coincidía. Por lo tanto, tendrá que agregar el cheque nulo.

Observe (?<B>...) que rodea al grupo "deseado". Además, observe el cheque nulo en la quinta línea.

 let p = /(?:<[a-zA-Z]+>)|(?:<\/[a-zA-Z]+>)|(?<B>[<>])/g let input = '<b>> 0.5 < 0.4</b> - <>'; let match = p.exec( input ); while( match !== null) { if( match.groups.B !== undefined ) console.log( match.groups.B ); match = p.exec( input ) }
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