¿Cómo convertir caracteres especiales a HTML en Javascript?

En HTML hay muchos casos en los que el navegador se confunde al mostrar la página. En HTML, el signo menor que ( < ) significa la apertura de alguna etiqueta y si colocamos un elemento después de él como ‘a’ o ‘h’ , el navegador los identifica como un ancla y una pestaña de encabezado respectivamente. Similar es el caso con algunos caracteres especiales que incluyen menos que, a la tasa (@), barra diagonal inversa, etc.

Ejemplo de problema: este ejemplo es una ilustración del problema causado cuando el texto HTML no se convierte al formato especial.

<html>
    <head>
    </head>
    <body>
        <div>
        If b<a and a<h then b<h. 
<!-- the browser understands it as anchor tag--> 
       </div>
    </body>
</html>

La parte b <a es problemática. El navegador lo entiende como etiquetas ancla. Similar es el caso con b <h
Salida:

If b

Solución 1: una forma de resolverlo es manualmente colocando símbolos especiales en el ritmo del carácter especial respectivo que es problemático. Pero para sitios web muy pesados ​​es muy difícil dibujar todos los caracteres y luego convertirlos en HTML.

<html>
  
<head>
</head>
  
<body>
    <div>
        If b
        < a and ab < h then b < h. 
      <!-- the browser understands it as less than-->
    </div>
</body>
  
</html>

Producción:

If b < a and ab < h then b < h.

Solución basada en JavaScript Otra forma es convertir cada carácter especial a su respectivo código HTML usando javascript. Dentro del script, reemplazaremos todos los estatutos especiales con la ayuda de una expresión regular que es «» + valor ASCII del carácter + «;» . Aplicamos la misma regla con todo el texto de la página.

<html>
  
<head>
    <script>
        function Encode(string) {
            var i = string.length,
                a = [];
  
            while (i--) {
                var iC = string[i].charCodeAt();
                if (iC < 65 || iC > 127 || (iC > 90 && iC < 97)) {
                    a[i] = '' + iC + ';';
                } else {
                    a[i] = string[i];
                }
            }
            return a.join('');
        }
    </script>
</head>
  
<body>
    <script>
        document.write(Encode("If b<a and a<h then b<h"));
    </script>
</body>
  
</html>

Producción:

If b<a and a<h then b<h

Publicación traducida automáticamente

Artículo escrito por piyush25pv y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *