Si te encuentras con algún detalle que no entiendes puedes comentarlo y te responderemos tan rápido como podamos.
Solución:
En mi opinión, la mejor manera es utilizar la funcionalidad de escape HTML incorporada en el navegador para manejar muchos de los casos. Para hacer esto, simplemente cree un elemento en el árbol DOM y establezca el innerText
del elemento a tu string. Luego recupera el innerHTML
del elemento. El navegador devolverá un código HTML. string.
function HtmlEncode(s)
var el = document.createElement("div");
el.innerText = el.textContent = s;
s = el.innerHTML;
return s;
Prueba de funcionamiento:
alert(HtmlEncode('&;'><"'));
Producción:
&;'><"
Este método de escape de HTML también es utilizado por la biblioteca Prototype JS, aunque de manera diferente a la muestra simplista que he dado.
Nota: aún necesitará escapar de las comillas (dobles y simples) usted mismo. Puede utilizar cualquiera de los métodos descritos por otros aquí.
Necesitas una función que haga algo como
return mystring.replace(/&/g, "&").replace(/>/g, ">").replace(/
Pero teniendo en cuenta su deseo de un manejo diferente de las comillas simples / dobles.
Esta función genérica codifica cada carácter no alfabético en su código html (numérico):
function HTMLEncode(str)
var i = str.length,
aRet = [];
while (i--) iC > 127
return aRet.join('');
Si te sientes motivado, puedes dejar una sección acerca de qué le añadirías a este escrito.