Маски полів (RegEx)

Написано Анатолій
Оновлено 6 днів тому
Маски полів, вони ж регулярні вирази (RegEx) — являють собою потужний інструмент для перевірки та обробки тексту.
Маски полів використовуються для валідації введених даних користувачами. Наприклад, перевірки правильності поштових індексів, електронних адрес, ЄДРПОУ, номерів телефонів тощо.

Вони складаються з послідовностей символів, деякі з яких мають спеціальні значення (наприклад, метасимволи), що дозволяють задавати складні умови валідації.

WhiteDoc надає не тільки певний перелік вже готових стандартних масок для перевірки введених даних, але й дає змогу користувачам гнучко створювати свої, кастомні маски, під кожен бізнес-процес.


Увімкнути налаштування маски можна як при додаванні нових полів у шаблон, так і редагуючи поля, що існують вже в створених шаблонах.

Для цього скористуйтесь пунктом "Маска" у властивостях поля, яке налаштовуєте:

З випадаючого списку ви зможете обрати готові варіанти масок, або створити свою, обравши пункт "Вручну".


  • Які стандартні маски доступні для застосування?
     

ЄДРПОУ (Код реєстрації підприємства в Україні)
Перевіряє: Код підприємства в Україні (8 цифр).
RegEx: ^\d{8}$
✅ Приклади: 12345678, 87654321
❌ Невалідні: 1234567 (7 цифр), 123456789 (9 цифр)

 

Ідентифікаційний номер платника податків
Перевіряє: Ідентифікаційний код фізичної особи — 10 цифр.
RegEx: ^\d{10}$
✅ Приклади: 1234567890
❌ Невалідні: 123456789 (9 цифр), 12345678901 (11 цифр)

 

ЄДРПОУ або ІНН
Перевіряє: або ЄДРПОУ (8 цифр), або ІПН (10 цифр).
RegEx: ^(\d{8}|\d{10})$
✅ Приклади: 12345678, 1234567890
❌ Невалідні: 1234567, 12345678901

 

Електронна адреса
Перевіряє: Email-адресу у стандартному форматі.
RegEx: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
✅ Приклади: test@example.com, user.name@domain.com
❌ Невалідні: test@.com, user@domain, user@domain..com

 

Номер телефону (Україна)
Перевіряє: Український номер телефону у міжнародному форматі.
RegEx: ^\+380\d{9}$
✅ Приклади: +380987654321
❌ Невалідні: 380987654321, +38098765432 (8 цифр)

 

Поштовий індекс (Україна)
Перевіряє: Український поштовий індекс (5 цифр).
RegEx: ^\d{5}$
✅ Приклади: 01001, 79000
❌ Невалідні: 1234 (4 цифри), 123456 (6 цифр)

 

Серія та номер паспорта (Україна)
Перевіряє: Серія та номер паспорта (2 літери + 6 цифр).
RegEx: ^[А-ЯЄІЇ]{2}\d{6}$
✅ Приклади: АВ123456, КС987654
❌ Невалідні: AB123456, А123456

 

Банківський рахунок (IBAN)
Перевіряє: IBAN (міжнародний номер банківського рахунку).
RegEx: ^[A-Z]{2}\d{2}[A-Z\d]{11,30}$
✅ Приклади: UA123456789012345678901234567
❌ Невалідні: UA12ABC, 12345678

 

Номер кредитної картки
Перевіряє: Номер банківської картки (16 цифр без пробілів).
RegEx: ^\d{16}$
✅ Приклади: 1234567812345678
❌ Невалідні: 1234 5678 1234 5678, 12345678

 

GTIN (Глобальний торговий номер)
Перевіряє: GTIN (Global Trade Item Number) — штрих-коди товарів.
RegEx: ^(\d{8}|\d{12}|\d{13}|\d{14})$
✅ Приклади: 12345678, 123456789012, 1234567890123, 12345678901234
❌ Невалідні: 1234567, 123456789012345

 

GLN (Глобальний номер місцезнаходження)
Перевіряє: Код ідентифікації підприємства.
RegEx: ^\d{13}$
✅ Приклади: 1234567890123
❌ Невалідні: 123456789012, 12345678901234

 

Артикул товару
Перевіряє: Від 5 до 10 символів (латинські літери, цифри або дефіс).
RegEx: ^[A-Z0-9-]{5,10}$
✅ Приклади: AB123, PROD-001, Z4567
❌ Невалідні: A1, Product12, AB_123

 

МФО (Міжбанківський фінансовий код, Україна)
Перевіряє: МФО банку (6 цифр).
RegEx: ^\d{6}$
✅ Приклади: 300001, 305299
❌ Невалідні: 30001, 1234567

 

Зведена таблиця: назва маски, RegEx та розшифровка перевірки

Маска: Регулярний вираз: Опис:
ЄДРПОУ ^\d{8}$ 8 цифр
ІПН ^\d{10}$ 10 цифр
Телефон ^\+380\d{9}$ +380 + 9 цифр
Email ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ Стандартний email
Індекс ^\d{5}$ 5 цифр
Паспорт ^[А-ЯЄІЇ]{2}\d{6}$ 2 літери + 6 цифр
IBAN ^[A-Z]{2}\d{2}[A-Z\d]{11,30}$ Міжнародний рахунок
Номер картки ^\d{16}$ 16 цифр
GTIN

^(\d{8}|\d{12}|\d{13}|\d{14})$

 8, 12, 13 або 14 цифр
GLN ^\d{13}$ 13 цифр
Артикул товару ^[A-Z0-9-]{5,10}$ Від 5 до 10 символів
МФО ^\d{6}$ 6 цифр

 

Як створювати кастомні маски самостійно?

Як зазначалось вище, маски полів побудовані на регулярних виразах. Отже, його необхідно буде створити.

Перед тим як створювати вираз, потрібно чітко визначити, які значення будуть коректними та некоректними.

Регулярний вираз складається зі спеціальних символів (метасимволів), які визначають правила перевірки.

Ця таблиця — компактний довідник, який можна використовувати під час створення регулярних виразів.
Таблиця включає основні символи, їх опис та приклади використання.

Символ Опис Приклад
^ Початок рядка ^a → "abc", але не "ba"
$ Кінець рядка a$ → "ba", але не "ab"
\d Будь-яка цифра (0-9) \d → "5", "9"
\D Не цифра \D → "a", "#"
\w Будь-яка буква, цифра або _ \w → "a", "1", "_"
\W Не буква, не цифра, не _ \W → "@", " "
[A-ZА-Я] Будь-яка велика латинська або кирилична буква [A-ZА-Я] → "A", "Я", "B"
{n} Повторення рівно n разів a{2} → "aa"
{n,} n або більше повторень a{2,} → "aa", "aaa"
{n,m} Від n до m повторень a{1,3} → "a", "aaa"
[abc] Будь-який символ із набору [abc] → "a", "b", "c"
[0-9] Будь-яка цифра [0-9] → "5", "9"
[^abc] Будь-який символ, окрім із набору [^abc] → "d", "1"
[a-z] Діапазон символів [a-z] → "b", "k"
| Логічна альтернативна умова — "або" a|b → "a", або "b"
. Будь-який символ, крім нового рядка a.c → "abc", "a1c"
* 0 або більше повторень a* → "", "a", "aaa"
+ 1 або більше повторень a+ → "a", "aaa"
? 0 або 1 повторення a? → "", "a"
\s Пробільний символ \s → " ", "\t"
\S Не пробільний символ \S → "a", "1"
( ) Групування (ab)+ → "ab", "abab"

Приклад створення регулярного виразу

Візьмемо ІПН юридичної особи, який може складатися з 12 цифр, а не з 10.
Регулярний вираз для перевірки в цьому випадку — ^\d{12}$

Розберемо його:

  • ^ — початок рядка
  • \d{12} — рівно 12 цифр
  • $ — кінець рядка

Приклади: 123456789012 — підходить
Невалідні: 1234567890 — не підходить (тільки 10 цифр)


Тестування регулярних виразів

Перед використанням створених виразів, рекомендуємо їх перевіряти.
Для тестування скористуйтесь спеціальними сервісами.

Наприклад, regex101.com — це потужний і зручний онлайн-інструмент для створення, тестування та аналізу регулярних виразів

  • Інтерактивне тестування в реальному часі:
    Вводите регулярний вираз у верхнє поле, а тестові рядки — у поле нижче. Результат збігів відображається миттєво.
  • Пояснення кожного символу:
    У правій панелі (під назвою "Explanation") сайт розбирає ваш регулярний вираз на окремі елементи, пояснюючи значення кожного символу чи конструкції.


 

Популярні кастомні маски (RegEx)

Для вашої зручності, нижче представлено додатковий перелік вже готових кастомних масок, що можуть стати в нагоді для валідації популярних документів (одного або кількох одразу):

Назва документа Маска (RegEx)
  • ІПН юридичної особи, 12 цифр
^\d{12}$
  • ІПН 10 цифр, або паспорт (ID-картка), 9 цифр
^(\d{10}|\d{9})$
  • IBAN для України
    UA + 2 цифри + 6 цифр
    + 19 цифр
^UA\d{2}\d{6}\d{19}$
  • Біометричний паспорт (ID-картка), 9 цифр
^\d{9}$
  • Паспорт книжкою 2 літери + 6 цифр,
    або ID-картка 9 цифр
^[А-ЯЄІЇ]{2}\d{6}|\d{9})$
  • Паспорт книжкою 2 літери + 6 цифр,
    або ІПН 10 цифр
^([А-ЯЄІЇ]{2}\d{6}|\d{10})$
  • Паспорт книжкою 2 літери + 6 цифр,
    або ІПН 10, або ID-картка 9 цифр
^([А-ЯЄІЇ]{2}\d{6}|\d{10}|\d{9})$

 


Тепер Ви знаєте більше 😉
WhiteDoc

Чи була наша стаття корисною?