Атрибут pattern тега <input> — перевірка регулярним виразом
Атрибут pattern (HTML тега <input>) вказує регулярний вираз, згідно з яким потрібно вводити і перевіряти дані в полі форми.
Якщо присутній атрибут pattern, то форма не буде відправлятися, поки поле не буде заповнено правильно.

Загальний опис
автор: NagarD
- Порада
-
Використовуйте глобальний атрибут
автор: с3сtitleдля опису підсказки шаблону, щоб допомогти користувачеві. - Нотатка
-
Атрибут
автор: с3сpatternпрацює з наступнимиinputтипами: text, date, search, url, tel, email та password.
Синтаксис
<input pattern="regexp">
Атрибут pattern може отримувати єдине значення:
-
pattern="regexp" -
Задає регулярний вираз.
автор: с3с
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 4 | 4 | 5 | ≤12.1 | 12 | 10 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 4 |
Приклади
+ запропонувати свій приклад у пісочниці
Найпростіший приклад використання HTML атрибута pattern теґа <input>
<form>
<p><b>З використанням атрибута pattern</b></p>
<p>Введіть логін та пароль:</p>
<label>Логін <input type = "text" name = "login" pattern = "[A-Za-z0-9]{6,}" title = "Логін не может бути меншим за 6 латинських символів."></label><br><br>
<label>Пароль <input type = "password" name = "pswd" pattern = "(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" title = "Пароль не може бути меншим за вісім символів і має містити хоча б одну цифру, одну маленьку та одну велику латинську літеру."></label><br><br>
<input type = "submit" value = "Увійти">
</form>
<br><br>
<form>
<p><b>Без використання атрибута pattern</b></p>
<p>Введіть логін та пароль:</p>
<label>Логін <input type = "text" name = "login" ></label><br><br>
<label>Пароль <input type = "password" name = "pswd"></label><br><br>
<input type = "submit" value = "Увійти">
</form>
Три поля, і рамка кожного реагує на введене одразу. Перше приймає рівно п'ять цифр. Друге показує, чому pattern — це збіг з усім значенням: 123 підійде, а 123abc уже ні. Третє написане з помилкою — вираз узятий у скісні риски, тож тепер поле вимагає ввести й самі риски.
HTML
<form>
<p>
<label>Індекс — рівно 5 цифр<br>
<input type="text" pattern="[0-9]{5}" title="П'ять цифр, наприклад 01001" placeholder="01001">
</label>
</p>
<p>
<label>pattern="[0-9]{3}" — збіг з усім значенням<br>
<input type="text" pattern="[0-9]{3}" title="Рівно три цифри й нічого більше" placeholder="спробуйте 123 і 123abc">
</label>
</p>
<p>
<label>pattern="/[0-9]+/" — помилка: риски стали частиною виразу<br>
<input type="text" pattern="/[0-9]+/" title="Тепер браузер вимагає ввести й риски" placeholder="спробуйте 12 і /12/">
</label>
</p>
</form>
CSS
label { display: block; margin-bottom: .2em; }
input {
font: inherit;
padding: .4em;
border: 2px solid #bbb;
border-radius: 4px;
min-width: 18em;
}
input:user-valid { border-color: #2a7f3f; background: #f2fbf4; }
input:user-invalid { border-color: #c0392b; background: #fdf3f2; }
Різниця між HTML 4.01 та HTML5
Атрибут pattern з'явився тільки в HTML5.
Коментарі
Коментарів ще немає — будьте першим!