<h1>
и <h3>
эквивалентны.<h4>
, или, что проще, <section>
и другие разделительные элементы. Внутри секции нумерация заголовков начинается заново.<h1>Foo</h1>
<h2>Bar</h2>
<h3>Foo</h3>
<h4>Bar</h4>
<h3>Foo</h3>
<section>
<h1>Bar</h1>
</section>
data-
. jQuery даже автоматически распарсит JSON:<article class="boat" data-schedule="['Moscow', 'Paris']">...</article>
$('.boat').data('schedule') === ['Moscow', 'Paris'];
$count = preg_match_all('/(img|src)=("|\')[^"\'>]+/im', $html);
if ($count > 1) ...
/<img\s+[^>]*src\s*=[^>]+>/i
/version=(\d+)/
a-z
, лучше ^\d
, и плохая скорость на неудачных проверках, ибо группу слева и справа можно сформировать n способами. Вот вариант чуток улучшенный:^(?:[^\d]*\d){0,3}[^\d]*$
$.ajax({
dataType: 'json'
});
{'ajax':'1'}
не надо, AJAX посылает заголовок X-Requested-With: XMLHttpRequest
, по которому нужно определять, что это AJAX.{
some: 'some'
}
можно попасть под фейл — типа отправки письма пользователю с dev-сервера :)
допустим, дадим разрешение на запись или уберём его
±x
).