Какие есть правила валидации полей
  • 16 Jun 2022
  • 3 минуты
  • Темная тема
    Светлая тема
  • формат pdf

Какие есть правила валидации полей

  • Темная тема
    Светлая тема
  • формат pdf

На всех проектах Mindbox существуют правила заполнения полей. При передаче информации происходит проверка передаваемых данных. Валидация проверяет, что в поле записываются разрешенные для него символы и количество этих символов не превышает лимит.

ФИО

Зависит от настроек в анкете клиента:

Копия Снимок экрана 2022-05-05 в 15.22.59.png

Русский алфавит

В начальных настройках выбран русский алфавит.

То есть разрешены символы из регулярного выражения:

^[А-яЁё][А-яЁё’\- ]*$

Что это значит:

  • Первый символ (или единственный, если он один) должен быть любой буквой русского алфавита.
  • Дальше — любая буква русского алфавита, апостроф, дефис или пробел.

Другие алфавиты и «любые символы»

Можно дополнительно подключить английский, белорусский, казахский, киргизский, польский или украинский алфавиты.

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

Если нужного вам алфавита нет в представленном списке, выберите опцию «любые символы».

Регулярное выражение для него:

^[\p{L}`’‘’\- \.0-9\(\)\+=\?\*\/«\!\,_\@№\:·\p{IsArabic}\p{IsArabicPresentationForms-A}\p{IsArabicPresentationForms-B}
\p{IsArmenian}\p{IsBengali}\p{IsBuhid}\p{IsCherokee}\p{IsCyrillic}\p{IsCyrillicSupplement}\p{IsDevanagari}\p{IsEthiopic}
\p{IsGeorgian}\p{IsGreek}\p{IsGreekExtended}\p{IsGujarati}\p{IsBopomofo}\p{IsBopomofoExtended}\p{IsHanunoo}
\p{IsHebrew}\p{IsHiragana}\p{IsKannada}\p{IsLao}\p{IsTagbanwa}\p{IsMongolian}\p{IsMyanmar}\p{IsKatakana}
\p{IsKatakanaPhoneticExtensions}\p{IsKhmer}\p{IsKhmerSymbols}\p{IsMalayalam}\p{IsGurmukhi}\p{IsOriya}\p{IsRunic}
\p{IsSinhala}\p{IsSyriac}\p{IsTagalog}\p{IsTaiLe}\p{IsTamil}\p{IsTelugu}\p{IsOgham}\p{IsThaana}\p{IsThai}\p{IsTibetan}
\p{IsYiSyllables}\p{IsYiRadicals}\p{IsHangulSyllables}\p{IsHangulJamo}\p{IsLimbu}\p{IsCJKUnifiedIdeographs}
\p{IsCJKUnifiedIdeographsExtensionA}\p{IsCJKCompatibility}\p{IsCJKRadicalsSupplement}\p{IsCJKSymbolsandPunctuation}
\p{IsEnclosedCJKLettersandMonths}\p{IsCJKCompatibilityIdeographs}\p{IsCJKCompatibilityForms}\p{IsHangulCompatibilityJamo}
\p{IsUnifiedCanadianAboriginalSyllabics}Ა-Ჿ]*$

В таком случае можно использовать буквы из перечисленных алфавитов, цифры и символы `’‘'-.()+=?*/"!,_@№:·

Количество символов

Не больше 100 в каждом поле.

Иногда при передаче ФИО через общее поле FullName мы не можем определить, что является именем и фамилией, и записываем всё в имя. Подробнее.
В таком случае ФИО в целом должно быть не более 100 символов с учетом пробелов, потому что запись сохраняется в одном поле.

Мобильный номер

Зависит от настроек в анкете клиента (см. скриншот выше).

В начальных настройках выбран телефонный код России. Можно добавить код любой страны.

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

Символы

При записи мы отбрасываем все символы, кроме цифр. Поэтому наличие и порядок скобок, тире и плюсов не имеет значения. Главное, чтобы был код страны и достаточное количество цифр.

Код

Номер должен начинаться с международного или внутреннего кода (для России это 7 и 8 соответственно).
Мы в любом случае сохраняем с международным кодом.

Количество символов

При использовании кода России, остальная часть номера должна содержать 10 цифр.
При использовании любого другого разрешенного кода, остальная часть должна содежать хотя бы 1 символ, а длина всего номера должна быть до 19 цифр включительно.

Email

Проверяется регулярным выражением:

^([\p{L}0-9_\-!#\$%&’\*\+/=\?\^`\{}\|~])+([\.\p{L}0-9_\-!#\$%&’\*\+/=\?\^`\{}\|~])*@
([\p{L}0-9]([\p{L}0-9\-]{0,61}[\p{L}0-9])?\.)*[\p{L}0-9]([\p{L}0-9\-]{0,61}[\p{L}0-9])?$

Что это значит:

  • Часть до @
    • Минимум один символ.
    • Первый — любая буква, цифра или символ _-!#$%&'*+/=?^`{​​}|~
    • Дальше — любая буква, цифра или символ ._-!#$%&'*+/=?^`{​​}|~ (прибавляется точка)
  • Символ @
  • Часть после @
    • Минимум один символ.
    • Может разделяться на доменные группы точками. При этом в каждой группе:
      • Первый и последний символ — любая буква или цифра.
      • Остальные — любая буква, цифра или тире.
      • 1-63 символа (включая точку-разделитель).

Количество символов

До 254 символов включительно.

Пол

Принимаемые форматы:

  • male/female
  • m/f
  • m/w

Регистр не важен.

Дополнительные поля

Строка и идентификаторы

Любые символы.
До 1000 символов включительно.

Перечисление

Любые символы, кроме |.
До 250 символов включительно в каждом значении.

Символ | можно передавать в качестве разделителя в файлах импорта при использовании множественных значений.

Целочисленный

Только цифры.
Значения от −2147483648 до 2147483647 (10 символов не включая минус).

Десятичный

Только цифры с точкой или запятой.
До запятой — максимум 16 символов, после запятой — максимум 2 символа.
Значения от −999999999999999999.99 до 999999999999999999.99

Логический

Принимаемые форматы:

  • true/false
  • yes/no
  • 1/0

Регистр не важен.

Дата, дата и время

Принимаемые форматы:

dd.MM.yyyy HH:mm:ss.FFF
dd.MM.yyyy H:mm:ss.FFF
dd.MM.yyyy HH:mm:ss
dd.MM.yyyy H:mm:ss
dd.MM.yyyy HH:mm
dd.MM.yyyy H:mm
dd.MM.yyyy
d.M.yyyy HH:mm:ss.FFF
d.M.yyyy H:mm:ss.FFF
d.M.yyyy HH:mm:ss
d.M.yyyy H:mm:ss
d.M.yyyy HH:mm
d.M.yyyy H:mm
d.M.yyyy
yyyy.MM.dd HH:mm:ss.FFF
yyyy.MM.dd H:mm:ss.FFF
yyyy.MM.dd HH:mm:ss
yyyy.MM.dd H:mm:ss
yyyy.MM.dd HH:mm
yyyy.MM.dd H:mm
yyyy.MM.dd
yyyy.M.d HH:mm:ss.FFF
yyyy.M.d H:mm:ss.FFF
yyyy.M.d.M.d HH:mm:ss
yyyy.M.d H:mm:ss
yyyy.M.d HH:mm
yyyy.M.d H:mm
yyyy.M.d
yyyy-MM-dd HH:mm:ss.fff
yyyy-MM-dd HH:mm:ss.FFF
yyyy-MM-dd H:mm:ss.FFF
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd H:mm:ss
yyyy-MM-dd HH:mm
yyyy-MM-dd H:mm
yyyy-MM-dd
yyyy-M-d HH:mm:ss.FFF
yyyy-M-d H:mm:ss.FFF
yyyy-M-d HH:mm:ss
yyyy-M-d H:mm:ss
yyyy-M-d H:m:s
yyyy-M-d HH:mm
yyyy-M-d H:mm
yyyy-M-d
MM/dd/yyyy HH:mm:ss
MM/dd/yyyy H:mm:ss
MM/dd/yyyy HH:mm
MM/dd/yyyy H:mm
MM/dd/yyyy
MM/dd/yy
Если в поле типа дата передаются часы и минуты, они отбрасываются при записи.

Если данные не проходят валидацию

Невалидное значение не будет записано в поле.

Срабатывает ли при этом операция?

В таком случае вызов операции может либо выполниться с предупреждением, либо не выполнится совсем. В первом случае мы сохраним данные по остальным полученным полям, во втором — не сохраним ничего.

В большинстве случаев при нарушении правил валидации, операция выполняется.

Исключения, при которых операция не выполняется:

  • Превышение лимита символов в полях ФИО (если сами символы валидные).
  • Превышение лимита символов в поле с типом «перечисление» (если передано имеющееся значение из поля или у поля включена настройка «Создавать значение перечисления, если не найдено»).
  • Наличие символа | в поле с типом «перечисление».
  • Невалидное поле — единственный идентификатор клиента. Мы не можем создать клиента без идентификаторов.