Какие значения можно добавить в значение атрибута HTML?
Нужно ли мне скрывать кавычки внутри значения атрибута html? Какие символы разрешены?
Это действительно?
<span title="This is a 'good' title.">Hi</span>
Ответы
Ответ 1
Если значение вашего атрибута указано (начинается и заканчивается двойными кавычками "
), то допускаются любые символы, за исключением двойных кавычек и амперсандов, которые должны быть указаны как "
и &
соответственно (или эквивалент числовые ссылки на объекты, "
и &
)
Вы также можете использовать одинарные кавычки вокруг значения атрибута. Если вы это сделаете, вы можете использовать буквенные двойные кавычки в атрибуте: <span title='This is a "good" title.'>...</span>
. Чтобы избежать одиночных кавычек в таком значении атрибута, вы должны использовать ссылку на числовые сущности '
, поскольку некоторые браузеры не поддерживают именованный объект, '
(который был not определенный в HTML 4.01).
Кроме того, вы также можете создавать атрибуты без кавычек, но это ограничивает набор символов, которые вы можете иметь в нем намного дальше, запрещая использование пробелов, =
, '
, "
, <
, >
, `
в атрибуте.
Подробнее см. спецификацию HTML5.
Ответ 2
Это верно. Однако, если вам нужно было вставить двойные кавычки внутрь, вам нужно будет с помощью "
выйти следующим образом:
<span title="This is a "good" title.">Hi</span>
Ответ 3
Значение может быть любым, но вам следует избегать кавычек ("
, '
), разделителей тегов (<
, >
) и амперсандов (&
).
Ответ 4
Нет, вам не нужно избегать одиночных кавычек внутри двойных кавычек.
Эта страница указывает действительные атрибуты тега span:
http://www.w3.org/TR/html401/struct/global.html#edef-SPAN
Эта страница указывает допустимые символы, разрешенные в атрибуте title:
http://www.w3.org/TR/html401/intro/sgmltut.html#attributes
Ответ 5
Да, отлично. Проблема в том, что при попытке поставить двойную цитату внутри атрибута. например:
<span title="This is a "bad" title.">Hi</span>
Вы можете обойти это, используя такие HTML-объекты:
<span title="This is a "good" title">Hi</span>
Ответ 6
Вот функция проверки, использующая регулярное выражение, основанное на ответе Брайана Кэмпбелла, для наихудшего случая некорректного атрибута.
validator: function (val) {
if (!val || val.search(/['"=<>`]+|(&\s)+/) === -1) return true;
return 'Disallowed characters in HTML attributes: \' " = < > ` &.';
},