¿Cuál es la verdadera razón por la que debemos escapar de una barra diagonal en una cadena de JavaScript, y también por qué debemos escapar cadena/sin cadena en XHTML. Muchos tutoriales solo abordan este tema.JavaScript y barras diagonales en cadenas
Respuesta
¿Cuál es la verdadera razón por la que hay que escapar de una barra inclinada en una cadena JavaScript
En un documento HTML 4, la secuencia </
dentro de un elemento se define como que contiene CDATA (como script) es una etiqueta final y terminará el elemento (con un error si no es </script>
.
Por lo que se refiere JS /
y \/
son idénticos dentro de una cadena. en lo que se refiere a HTML </
comienza una etiqueta final b ut <\/
no.
, y también por qué debemos escapar de la cadena/sin cadena en XHTML.
XHTML no proporciona un método para especificar que un elemento contiene intrínsecamente CDATA, por lo que necesita para manejar de forma explícita caracteres que de otro modo tienen un significado especial (<
, &
, etc). Envolverlos contiene del elemento con marcadores CDATA es la forma más fácil de lograr esto.
No es necesario para escapar /
en una cadena de JavaScript, simplemente \
, porque si no lo hace, entonces la cadena yes\no
inadvertidamente ser transformado en yes<newline>o
. Escapar el \
evitará eso.
Además, si no escapa &
en una URL, todo lo que venga después se considerará un nuevo parámetro. Por ejemplo, a=Q&A
significará que "el parámetro a
tiene el valor" Q
"y también hay un parámetro A
" en lugar de "el parámetro a
tiene el valor" Q&A
"". La forma correcta de escapar sería a=Q%26A
.
¿Por qué escribiría 'yes \ no' para el aviso? –
@ Paŭlo, probablemente no, ese es el mejor ejemplo de uso no intencional que podría surgir. – rid
nombres de archivos de Windows? –
La barra oblicua es necesaria para evitar que los navegadores, especialmente los más antiguos, interpreten erróneamente la barra inclinada como un marcador de cierre de JavaScript.
No hay nada erróneo al respecto. – Quentin
- 1. La conversión de barras diagonales inversas en barras diagonales mediante javascript no funciona correctamente?
- 2. Ignorar caracteres de escape (barras diagonales inversas) en cadenas R
- 3. nginx y barras diagonales en $ document_root?
- 4. json_encode() escapa barras diagonales
- 5. Eliminar barras diagonales
- 6. ¿Cómo obtengo .NET's Path.Combine para convertir las barras diagonales en barras diagonales inversas?
- 7. Haciendo JSON no escapa barras diagonales
- 8. barras invertidas Extracción de cadenas en Javascript
- 9. ¿Debo eliminar las barras diagonales en metaetiquetas?
- 10. ¿Todavía necesitamos barras diagonales en HTML5?
- 11. Escapar cadenas en JavaScript
- 12. ¿Cómo puedo escapar de las barras diagonales inversas en JSON?
- 13. ¿Regexp.escape no escapa a las barras diagonales?
- 14. Agregar barras diagonales inversas sin escapar [Python]
- 15. regex: ¿cómo escapar barras diagonales inversas y caracteres especiales?
- 16. ¿Hay algo extraño con PowerShell y barras diagonales?
- 17. PHP y barras invertidas en cadenas
- 18. nginx: Cómo mantener dobles barras diagonales en las URL
- 19. Uso de barras diagonales inversas en abreviaturas vim
- 20. Citando barras diagonales inversas en literales de cadena Python
- 21. En PHP, ¿necesito escapar de las barras diagonales inversas?
- 22. Eliminar barras diagonales inversas de una cadena en Python
- 23. Javascript y barras invertidas reemplazar
- 24. Sustitución de barras invertidas con barras diagonales con str_replace() en php
- 25. URL codificada barras diagonales que rompen mi aplicación CodeIgniter
- 26. ¿Cómo usar params con barras diagonales con Sinatra?
- 27. Eliminar todas las barras diagonales inversas de PHP urldecoded string
- 28. Codificando barras diagonales hacia delante y hacia atrás en tomcat 7?
- 29. Más diagonales en R
- 30. Ant produce jsfl con barras invertidas en lugar de barras
Entonces, ¿nunca tenemos que escapar de una sola barra inclinada, solo una rubixibuc
En otras palabras, en XHTML, ¿cuándo debemos escapar de una barra diagonal? – rubixibuc
En XHTML "normal" (que nadie usa), nunca. En HTML compatible con XHTML (que utilizan todos los que quieren IE 8 y versiones inferiores), los mismos lugares que en HTML. – Quentin