﻿# Маски строковых полей

> [HTML Version](field-masks.html)

Регулярные выражения — это шаблоны, используемые для сопоставления последовательностей символов в строках. Шаблон состоит из односимвольных или многосимвольных литералов, операторов или конструкций.

Используя регулярные выражения для полей типа **Строка** можно настроить маску. С помощью нее будет проверяться корректность информации, введённой пользователем. Обратите внимание, в маске доступны только выражения без флагов. 

Можно также указать текст сообщения, которое будет отображаться при вводе данных в формате, не удовлетворяющем требованиям регулярного выражения. 

**(regular-expr1.png)**

Подробнее о синтаксисе регулярных выражений можно прочитать в документации [MDN Web Docs](https://developer.mozilla.org/ru/docs/Web/JavaScript/Guide/Regular_Expressions).



В каждом примере, приведенном ниже, содержится:

‘^’ — начало строки,

‘\$’ — конец строки,

‘?’ в ‘()?’ означает, что все, что находится в (), может повторяться 0 или 1 раз. Если не добавить это условие, то в случае, если поле не обязательно и не заполнено, будет возникать сообщение об ошибке.

## Примеры регулярных выражений

### Проверка серии паспорта

^(\[0-9\]\{2\}\\s\{1\}\[0-9\]\{2\})?\$

Разберем выражение:

1. \[0-9\]\{2\} — позволяет ввести две любые цифры.

2. \\s\{1\} — позволяет ввести один пробел.

3. \[0-9\]\{2\} — позволяет ввести две любые цифры.

**Пример**: 12 34

### Проверка номера паспорта

^(\[0-9\]\{6\})?\$

Разберем выражение:

1. \[0-9\]\{6\} — позволяет ввести 6 любых цифр.

**Пример**: 123456

### Проверка кода подразделения

^(\[0-9\]\{3\}\[-\]\{1\}\[0-9\]\{3\})?\$

Разберем выражение:

1. \[0-9\]\{3\} — позволяет ввести 3 любые цифры.

2. \[-\]\{1\} — позволяет ввести один символ ‘-’.

3. \[0-9\]\{3\} — позволяет ввести 3 любые цифры.

**Пример**: 123-456

### Проверка ИНН

^((\[0-9\]\{12\})|(\[0-9\]\{10\}))?\$

Разберем выражение:

1. \[0-9\]\{12\} — позволяет ввести 12 любых цифр.

2. \[0-9\]\{10\} — позволяет ввести 10 любых цифр.

3. (a|b) — позволяет ввести либо левую часть выражения, либо правую.

**Пример**:

- 123456789012

- 1234567890

### Проверка ОГРН

^(\[0-9\]\{13\})?\$ — позволяет ввести 13 любых цифр.

### Проверка КПП

^(\[0-9\]\{9\})?\$ — позволяет ввести 9 любых цифр.

### Проверка номера частного транспортного средства

^(\[АВЕКМНОРСТУХ\]\{1\}\[0-9\]\{3\}\[АВЕКМНОРСТУХ\]\{2\}\[0-9\]\{2,3\})?\$

Пример:

- А012ВУ18

- А012ВЕ159

### Проверка корректности названия файла

^(\[^\\\\/:\*?"<>|\]+\[.\]\{1\}\[^\\\\/:\*?"<>|\]+)?\$

Разберём выражение:

1. \[^\\\\/:\*?"<>|\] — позволяет ввести любые символы, кроме тех, которые написаны после «^». То есть, символы, входящие в диапазон, указывают на отрицание.

2. \[a\]+ — позволяет ввести символы в скобках один или несколько раз. Вы можете задать любую комбинацию символов, кроме указанных в скобках.

3. \[.\]\{1\} — позволяет ввести одну точку.

**Пример**: Документ1.docx

### Проверка корректности пути до файла

^((\[A-Z\]:\\\\)\{1\}\[^\\/:\*?"<>|\]+)?\$

Разберём выражение:

1. (\[A-Z\]:\\\\)\{1\} — позволяет ввести одну заглавную латинскую букву и последовательность символов «:\\» (первый символ «\\» сообщает системе, что следующая обратная косая черта не является специальным символом).

2.  + — позволяет ввести символы в скобках один или несколько раз. Поскольку в начале выражения указан символ «^», вы можете задать любую комбинацию символов, кроме указанных в скобках.

**Пример**:

- C:\\Windows\\System32\\calc.exe;

- Z:\\test.txt.