¿Alguien sabe cómo convertir caracteres especiales HTML
en Javascript
pulgadas?
Ejemplo:
&
(ampersand) se convierte en&
."
(comillas dobles) se convierte en"
cuandoENT_NOQUOTES
no se establece.'
(comillas simples) pasa a ser'
solo cuandoENT_QUOTES
se establece.<
(menos que) se convierte en<
.>
(mayor que) se convierte en>
.
javascript
Jin Yong
fuente
fuente
Respuestas:
Necesitas una función que haga algo como
Pero teniendo en cuenta su deseo de un manejo diferente de comillas simples / dobles.
fuente
/g
en una expresión regular significa "global". En pocas palabras, se reemplazarán todas las apariciones de la cadena. Sin/g
solo el primer partido sería reemplazado.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 en su cadena. Luego recupere elinnerHTML
del elemento. El navegador devolverá una cadena codificada en HTML.Prueba de funcionamiento:
Salida:
Este método de escape 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í.
fuente
delete el
es un error aquí. perfectionkills.com/understanding-delete<>&
pero no es tan completo como las soluciones de Neotropic o KooiInc.output = $('<div>').text(input).html()
Esta función genérica codifica cada carácter no alfabético en su código html (numérico):
fuente
<>&
var iC = str.charCodeAt(i)
Desde Mozilla ...
La mejor solucion
Ejemplo de uso:
fuente
Crea una función que use cadena
replace
fuente
Para aquellos que quieran decodificar un código de caracteres enteros como
&#xxx;
dentro de una cadena, use esta función:ES6
fuente
fuente
Como se mencionó,
dragon
la forma más limpia de hacerlo es conjQuery
:fuente
Resultado:
En la etiqueta testarea:
Si solo cambia un poco de caracteres en código largo ...
fuente
En una
PRE
etiqueta, y en la mayoría de las otras etiquetas HTML, el texto sin formato de un archivo por lotes que usa los caracteres de redirección de salida (<y>) romperá el HTML, pero aquí está mi consejo : todo vale en unTEXTAREA
elemento, no romperá el HTML, principalmente porque estamos dentro de un control instanciado y manejado por el sistema operativo, y por lo tanto su contenido no está siendo analizado por el motor HTML.Como ejemplo, digamos que quiero resaltar la sintaxis de mi archivo por lotes usando javascript. Simplemente pego el código en un área de texto sin preocuparme por los caracteres reservados HTML, y hago que el script procese la
innerHTML
propiedad del área de texto, que evalúa el texto con los caracteres reservados HTML reemplazados por sus entidades ISO-8859-1 correspondientes.Los navegadores escaparán de los caracteres especiales automáticamente cuando recupere la propiedad
innerHTML
(youterHTML
) de un elemento. El uso de un área de texto (y quién sabe, tal vez una entrada de tipo texto) simplemente le evita hacer la conversión (manualmente o mediante código).Utilizo este truco para probar mi resaltador de sintaxis, y cuando termino de crear y probar, simplemente oculto el área de texto de la vista.
fuente
Si necesita soporte para todas las referencias de caracteres con nombre estandarizadas , unicode y símbolos de unión ambiguos , ¡la biblioteca he es la única solución 100% confiable que conozco!
Uso de ejemplo
fuente
una solución alternativa:
fuente
Otro que usamos ahora que funciona. Uno de arriba lo tengo llamando a un script y devuelve el código convertido. Solo es bueno en áreas de texto pequeñas (es decir, no es un artículo completo / blog, etc.)
Por arriba. Funciona en la mayoría de los caracteres.
Creo un archivo javascript que tiene muchas funciones, incluidas las anteriores. http://www.neotropicsolutions.com/JSChars.zip
Se incluyen todos los archivos necesarios. Agregué jQuery 1.4.4. Simplemente porque vi problemas en otras versiones, pero aún no los he probado.
fuente
simplemente puede convertir caracteres especiales a html usando el código anterior.
fuente
Aquí hay una buena biblioteca que he encontrado muy útil en este contexto.
https://github.com/mathiasbynens/he
Según su autor:
fuente
Aquí hay un par de métodos que uso sin la necesidad de Jquery:
Puede codificar todos los caracteres de su cadena:
O simplemente apunte a los principales caracteres de codificación segura de los que preocuparse (&, inebreaks, <,> "y ') como:
fuente
fuente
Esto no responde directamente a su pregunta, pero si está utilizando
innerHTML
para escribir texto dentro de un elemento y se encontró con problemas de codificación, simplemente usetextContent
, es decir:fuente
Podemos usar javascript
DOMParser
para la conversión de caracteres especiales.fuente
A continuación se muestra la función simple para codificar caracteres de escape xml en JS
Encoder.htmlEncode (unsafeText);
fuente
Puede solucionarlo reemplazando la función .text () por .html (). está trabajando para mí.
fuente
use esto para probar: http://www.w3schools.com/js/tryit.asp?filename=tryjs_text
fuente
Sí, pero si necesita insertar la cadena resultante en algún lugar sin que se vuelva a convertir, debe hacer:
fuente
Ver JavaScript htmlentities http://phpjs.org/functions/htmlentities:425
fuente
Utilice la función de javaScript escape () , que le permite codificar cadenas.
p.ej,
fuente
fuente