Какие значения можно добавить в значение атрибута HTML?

Нужно ли мне скрывать кавычки внутри значения атрибута html? Какие символы разрешены?

Это действительно?

<span title="This is a 'good' title.">Hi</span>

Ответы

Ответ 1

Если значение вашего атрибута указано (начинается и заканчивается двойными кавычками "), то допускаются любые символы, за исключением двойных кавычек и амперсандов, которые должны быть указаны как &quot; и &amp; соответственно (или эквивалент числовые ссылки на объекты, &#34; и &#38;)

Вы также можете использовать одинарные кавычки вокруг значения атрибута. Если вы это сделаете, вы можете использовать буквенные двойные кавычки в атрибуте: <span title='This is a "good" title.'>...</span>. Чтобы избежать одиночных кавычек в таком значении атрибута, вы должны использовать ссылку на числовые сущности &#39;, поскольку некоторые браузеры не поддерживают именованный объект, &apos; (который был not определенный в HTML 4.01).

Кроме того, вы также можете создавать атрибуты без кавычек, но это ограничивает набор символов, которые вы можете иметь в нем намного дальше, запрещая использование пробелов, =, ', ", <, >, ` в атрибуте.

Подробнее см. спецификацию HTML5.

Ответ 2

Это верно. Однако, если вам нужно было вставить двойные кавычки внутрь, вам нужно будет с помощью &quot; выйти следующим образом:

<span title="This is a &quot;good&quot; title.">Hi</span>

Ответ 3

Значение может быть любым, но вам следует избегать кавычек (&quot;, &apos;), разделителей тегов (&lt;, &gt;) и амперсандов (&amp;).

Ответ 5

Да, отлично. Проблема в том, что при попытке поставить двойную цитату внутри атрибута. например:

<span title="This is a "bad" title.">Hi</span>

Вы можете обойти это, используя такие HTML-объекты:

<span title="This is a &quot;good&quot; title">Hi</span>

Ответ 6

Вот функция проверки, использующая регулярное выражение, основанное на ответе Брайана Кэмпбелла, для наихудшего случая некорректного атрибута.

validator: function (val) {
  if (!val || val.search(/['"=<>`]+|(&\s)+/) === -1) return true;
    return 'Disallowed characters in HTML attributes: \' " = < > ` &.';
},