En el atributo HTML name = value pares, ¿cuáles son los caracteres permitidos para la parte 'nombre'? ..... Mirando algunos common attributes parece que solo se usan letras (az y AZ), pero ¿qué otros caracteres también se podrían permitir? ... tal vez dígitos (0-9), guiones (-) y puntos (.) ... ¿hay alguna especificación para esto?¿Qué caracteres están permitidos en un nombre de atributo HTML?
Respuesta
Depende de lo que quiere decir con "permitido". Cada etiqueta tiene una lista fija de nombres de atributos que son válidos, y en html no distinguen entre mayúsculas y minúsculas. En un sentido importante, solo estos personajes en la secuencia correcta están "permitidos".
Otra forma de verlo es qué caracteres tratarán los navegadores como un nombre de atributo válido. El mejor consejo aquí proviene de la especificación del analizador de HTML 5, que se puede encontrar aquí: https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
Dice que todos los caracteres excepto tabulación, avance de línea, alimentación de formulario, espacio, solidus, mayor que signo, comillas, apóstrofo y el signo igual se tratará como parte del nombre del atributo. Personalmente, no intentaría empujar los casos extremos de esto sin embargo.
Responda mi pregunta. "todos los personajes excepto ... serán tratados como parte del nombre del atributo" - ¡Felicitaciones por encontrar esta información, eso también en una especificación! –
Sí, no lo "empuje". Algunos caracteres bastante comunes deberán escaparse en los selectores de CSS, otros romperán el resaltado de sintaxis de su editor, etc. – Rolf
Como referencia, la expresión regular sería '/ ([^ \ t \ n \ f \ />" '= ] +)/' – Nate
Los valores permitidos se enumeran en w3.org. Si agrega un atributo personalizado, ya no está escribiendo HTML.
Conclusivo. Entonces todos los caracteres permitidos son los que están en ese documento. ¡Gracias! –
Eso no es del todo cierto ya que puede especificar sus propios atributos 'data-'. – ioquatix
@ioquatix - ¡Fue cierto en 2009! E incluso con atributos de datos en la mezcla, es una forma muy específica de personalización que se define en la especificación. – Quentin
Suponiendo que está hablando de XHTML, se aplican las reglas XML.
Ver http://www.w3.org/TR/2008/REC-xml-20081126/#NT-Name
Nombres y Tokens
[4] NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
[4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
[5] Name ::= NameStartChar (NameChar)*
[6] Names ::= Name (#x20 Name)*
[7] Nmtoken ::= (NameChar)+
[8] Nmtokens ::= Nmtoken (#x20 Nmtoken)*
imho, esta debería ser la respuesta aceptada – revelt
Tal vez me falta algo, pero creo que la pregunta se basa en una suposición falsa. En HTML, los atributos son estrictamente defined según una especificación fija. Si 'inventa' sus propios nombres de atributos, ya no está escribiendo HTML válido.
... a menos que sean atributos 'data- *' personalizados. –
@MathiasBynens Genial, ¡todavía no sabía sobre eso! Aún así, tenga en cuenta que solo son válidos para HTML5, no para ninguna versión anterior de HTML. – Daan
¿Por qué no usarías HTML5? –
- 1. ¿Qué caracteres están permitidos en el atributo Nombre de HTML dentro de la etiqueta de entrada?
- 2. ¿Qué caracteres están permitidos en los identificadores de Perl?
- 3. ¿Qué caracteres están permitidos para los operadores de Haskell?
- 4. ¿Qué caracteres especiales están permitidos en el nombre de la columna T-SQL?
- 5. Caracteres permitidos en el nombre de archivo
- 6. ¿Qué cadenas están permitidas en el atributo "nombre común" en un certificado X.509?
- 7. ¿Qué valores puedo poner en un valor de atributo HTML?
- 8. ¿Qué caracteres Unicode están permitidos en las etiquetas de host IDN?
- 9. ¿Qué caracteres inusuales además de $ están permitidos en los identificadores de JavaScript?
- 10. ¿Qué caracteres "especiales" están permitidos en los campos varchar de SQL Server?
- 11. ¿Qué caracteres están permitidos en una clave de Google App Engine?
- 12. ¿Qué caracteres NO están permitidos en los nombres de campo MongoDB?
- 13. ¿Qué tipos de idiomas están permitidos en la etiqueta de secuencia de comandos HTML?
- 14. Caracteres permitidos en una URL
- 15. ¿Qué permiso de reflexión están permitidos en Medium Trust?
- 16. ¿Cuáles son los caracteres permitidos en un subdominio?
- 17. son caracteres # o & permitidos en xml?
- 18. ¿Qué caracteres NO están presentes en Unicode?
- 19. HTTP URL - caracteres permitidos en los nombres de los parámetros
- 20. Nombre de la aplicación del iPhone (trampolín y destino) Lista de caracteres especiales permitidos
- 21. Algunos caracteres utf8 permitidos en la fuente python, algunos no
- 22. DropDownListFor con un atributo personalizado con - en nombre de atributo?
- 23. (y otros caracteres Unicode) en identificadores no permitidos por g ++
- 24. ¿Cuáles son los caracteres legales/permitidos para los nombres de los archivos del servidor web?
- 25. ¿Por qué algunos comandos de git no están permitidos en el directorio .git?
- 26. cómo codificar el atributo href en HTML
- 27. ¿Por qué los tipos de parámetros contravariantes en Java no están permitidos para la anulación?
- 28. ¿Por qué los tipos de datos primitivos no están permitidos en java.util.ArrayList?
- 29. ¿Por qué los enlaces duros no están permitidos en los directorios de UNIX/Linux
- 30. ¿Cuántos subdominios están permitidos para una ID de correo electrónico?
Esto suena como la pregunta que provocó Angular 2: P –