Какие есть правила валидации полей
На всех проектах Mindbox существуют правила заполнения полей. При передаче информации происходит проверка передаваемых данных. Валидация проверяет, что в поле записываются разрешенные для него символы и количество этих символов не превышает лимит.
ФИО
Зависит от настроек в анкете клиента:
Русский алфавит
В начальных настройках выбран русский алфавит.
То есть разрешены символы из регулярного выражения:
^[А-яЁё][А-яЁё’\- ]*$
Что это значит:
- Первый символ (или единственный, если он один) должен быть любой буквой русского алфавита.
- Дальше — любая буква русского алфавита, апостроф, дефис или пробел.
Другие алфавиты и «любые символы»
Можно дополнительно подключить английский, белорусский, казахский, киргизский, польский или украинский алфавиты.
После добавления нового алфавита убрать его из настроек нельзя.
Если нужного вам алфавита нет в представленном списке, выберите опцию «любые символы».
Регулярное выражение для него:
^[\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 цифр включительно.
Проверяется регулярным выражением:
^([\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 символа.
Значения от −9999999999999999.99 до 9999999999999999.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 |
Если в поле типа дата передаются часы и минуты, они отбрасываются при записи.
Если данные не проходят валидацию
Невалидное значение не будет записано в поле.
Срабатывает ли при этом операция?
В таком случае вызов операции может либо выполниться с предупреждением, либо не выполнится совсем. В первом случае мы сохраним данные по остальным полученным полям, во втором — не сохраним ничего.
В большинстве случаев при нарушении правил валидации, операция выполняется.
Исключения, при которых операция не выполняется:
- Превышение лимита символов в полях ФИО (если сами символы валидные).
- Превышение лимита символов в поле с типом «перечисление» (если передано имеющееся значение из поля или у поля включена настройка «Создавать значение перечисления, если не найдено»).
- Наличие символа
|
в поле с типом «перечисление». - Невалидное поле — единственный идентификатор клиента. Мы не можем создать клиента без идентификаторов.