0Pricing
HTML Academy · Урок

required pattern min max и maxlength

Добавляйте встроенные ограничения проверки к полям формы

«required pattern min max и maxlength» — бесплатный урок HTML Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения HTML Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс HTML Academy содержит 4 уроков всего.

Проверка форм в HTML5

В HTML5 появилась встроенная проверка форм — JavaScript не требуется:

  • Браузеры проверяют ограничения перед отправкой
  • Сообщения об ошибках автоматически отображаются
  • Работает с псевдоклассами CSS :valid / :invalid

Обязательное поле

Атрибут required запрещает отправку, если поле пусто:

<label for="email">Email (required)</label>
<input type="email" id="email" name="email" required>
<!-- Empty on submit → browser shows "Please fill in this field" -->
<!-- Also: field is :invalid until filled -->

Шаблон

Атрибут pattern проверяет текст с помощью регулярного выражения:

<label for="username">Username (letters and numbers only)</label>
<input
  type="text"
  id="username"
  name="username"
  pattern="[a-zA-Z0-9]{3,20}"
  title="3-20 letters and numbers"
>
<!-- pattern anchored at both ends automatically -->
<!-- title provides the error message hint -->

Примеры распространённых шаблонов

Полезные шаблоны регулярных выражений для полей формы:

<!-- Phone: digits, spaces, hyphens -->
<input type="tel" pattern="[0-9 ()+-]{7,20}">

<!-- Postal code: US zip code -->
<input type="text" pattern="[0-9]{5}(-[0-9]{4})?">

<!-- Password: min 8 chars, one uppercase, one digit -->
<input type="password" pattern="(?=.*[A-Z])(?=.*[0-9]).{8,}">

<!-- Twitter handle: -->
<input type="text" pattern="@?[A-Za-z0-9_]{1,15}">

Минимальное и максимальное значения

Ограничивайте значения числовых полей, дат и диапазонов:

<!-- Number range -->
<input type="number" name="qty" min="1" max="100">

<!-- Date range -->
<input type="date" name="checkin" min="2025-01-01" max="2025-12-31">

<!-- Range slider -->
<input type="range" name="volume" min="0" max="100" step="5">

<!-- Time -->
<input type="time" name="meeting" min="09:00" max="17:00">

Минимальная и максимальная длина

Управляйте длиной текстового ввода:

<input type="text" name="username" minlength="3" maxlength="20">
<!-- minlength: minimum number of characters required -->
<!-- maxlength: maximum characters allowed (browser enforces hard stop) -->

<textarea name="bio" minlength="50" maxlength="500"></textarea>
<!-- Same attributes work on textarea -->

Шаг

Атрибут step задаёт допустимые приращения для числовых полей и диапазонов:

<input type="number" name="price" min="0" step="0.01">
<!-- Accepts decimal prices: 0.00, 0.01, 4.99, etc. -->

<input type="number" name="qty" min="0" step="5">
<!-- Only multiples of 5: 0, 5, 10, 15... -->

<input type="range" min="0" max="100" step="10">
<!-- Snaps to: 0, 10, 20, ..., 100 -->

CSS :valid и :invalid

Стилизуйте поля в зависимости от их состояния проверки:

input:valid {
  border-color: #22c55e;   /* green when valid */
}

input:invalid {
  border-color: #ef4444;   /* red when invalid */
}

/* Avoid showing :invalid on page load (before user interaction): */
input:not(:placeholder-shown):invalid {
  border-color: #ef4444;
}
/* Only show invalid style after user has typed something */

Заголовок для пользовательских сообщений об ошибках

Атрибут title предоставляет подсказку в сообщении об ошибке проверки браузера:

<input
  type="text"
  pattern="[A-Za-z]{2,3}"
  title="Enter a 2 or 3 letter country code (e.g. US, GB, DEU)"
  name="country-code"
>
<!-- Browser shows the title text alongside the default error message -->

Сочетание ограничений

Несколько атрибутов проверки работают вместе:

<input
  type="text"
  name="username"
  required
  minlength="3"
  maxlength="20"
  pattern="[a-z][a-z0-9_]*"
  title="Lowercase letters, numbers, underscores. Must start with a letter."
>
<!-- All constraints must pass for the field to be :valid -->

Отключение проверки и время её выполнения

По умолчанию проверка выполняется при отправке. Чтобы проверять данные при каждом событии ввода:

<input type="email" id="email">

<script>
const input = document.getElementById('email');
input.addEventListener('blur', () => {
  // Check validity on blur (when user leaves field):
  if (!input.validity.valid) {
    input.reportValidity();
  }
});
</script>

Обзор псевдоклассов проверки

Псевдоклассы CSS для проверки формы:

  • :valid — проверка ограничений пройдена
  • :invalid — одно или несколько ограничений не выполнены
  • :required — атрибут required присутствует
  • :optional — атрибут required отсутствует
  • :in-range — значение находится в пределах min/max
  • :out-of-range — значение находится за пределами min/max

Быстрая проверка

Какой атрибут ограничивает максимальное количество символов в текстовом поле?

Повторение: атрибуты проверки

Основные сведения о проверке в HTML5:

  • required — поле должно быть заполнено
  • pattern — проверка по регулярному выражению
  • min / max — границы значения для числа, даты или диапазона
  • maxlength / minlength — границы количества символов
  • step — допустимые приращения
  • CSS :valid / :invalid для стилизации

Часто задаваемые вопросы

Урок «required pattern min max и maxlength» бесплатный?

Да — полный текст урока «required pattern min max и maxlength» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс HTML Academy, подпишись на CoddyKit PRO. Курс HTML Academy содержит 4 уроков всего.

Чему я научусь в уроке «required pattern min max и maxlength»?

Добавляйте встроенные ограничения проверки к полям формы Ты практикуешь HTML Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать HTML Academy?

Предыдущий опыт не требуется. HTML Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «required pattern min max и maxlength»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке HTML Academy?

Да. Каждый урок HTML Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. required pattern min max и maxlength
  2. Атрибут novalidate
  3. Основы Constraint Validation API
  4. Проверка HTML5 и JavaScript: компромиссы
← Назад к HTML Academy