Какие именно сочетания символов не допустимы в ФИО, согласно письму ФНС России от 01.03.2022 N БС-4-11/2435@?

Ссылка скопирована
1 ответ

Сейчас ситуация такая: итак, нужно сделать валидацию ФИО. В систему гарантированно попадают только российские ФИО. Поэтому решил посмотреть официальные документы. Нашёл письмо ФНС (номер в заголовке), в приложении к которому перечислены недопустимые сочетания символов, но я не пойму формулировку в двух пунктах. Переформулируйте по-русски или объясните на примерах, что значит:
2)По вводным: расположение подряд двух и более символов «.» (точка), «-» (дефис), «’» (апостроф), « »
По вводным: (пробел), «,» (запятая), «(» (открывающая скобка), «)» (закрывающая скобка)

3)Сейчас ситуация такая: не допускается наличия подряд идущих символов: «.» (точка), «-» (дефис), «’» (апостроф),
По вводным: «,» (запятая), «(» (открывающая скобка), «)» (закрывающая скобка)

По вводным: во втором пункте перечислен пробел, в третьем нет. Один из пунктов можно понимать как "нельзя, чтобы две точки шли друг за другом, а так же два дефиса, два апострофа и т.д.", или как "запрещено, чтобы любые из этих символов шли друг за другом: и дальше список", но тогда непонятно, что значит другой.

По вводным: я понимаю, что нельзя запрещать спец. Символам идти за пробелом или перед пробелом, и что логично было бы запретить двум пробелам идти друг за другом, но ощущение, что в этих двух пунктах написано одно и тоже.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Мария Код Ответ

В письме ФНС про валидацию ФИО обычно речь не о том, что нужно запретить “все необычные имена”, а о технически недопустимых последовательностях символов: двойные разделители, разделитель в начале/конце, цифры, служебные символы и сочетания, которые не могут быть частью российского ФИО. Точную реализацию лучше делать по тексту приложения к письму, а не по пересказам.

Для практической валидации ФИО я бы не делал слишком агрессивный regex. Российские ФИО могут содержать дефис, пробел, букву Ё, апостроф в редких случаях, составные фамилии. Но точно стоит запрещать цифры, email-символы, слэши, подчёркивания, HTML и повторяющиеся разделители.

Базовая логика:

  • обрезать пробелы по краям;
  • нормализовать повторные пробелы;
  • разрешить кириллицу, пробел и дефис;
  • запретить дефис/пробел в начале и конце;
  • запретить двойной дефис и двойные пробелы;
  • проверять длину каждой части.

Пример осторожного regex:

const fio = value.trim().replace(/s+/g, ' ');
 
const valid = /^[А-ЯЁа-яё]+(?:[- ][А-ЯЁа-яё]+)*$/.test(fio)
  && !fio.includes('--')
  && fio.length >= 2
  && fio.length <= 150;

const fio = value.trim().replace(/s+/g, ' '); const valid = /^[А-ЯЁа-яё]+(?:[- ][А-ЯЁа-яё]+)*$/.test(fio) && !fio.includes('--') && fio.length >= 2 && fio.length <= 150;

Если нужно строго соответствовать требованиям конкретной госинтеграции, заведите отдельный валидатор под этот формат и список ошибок. Не смешивайте “удобную форму на сайте” и “жёсткий формат ФНС”: на сайте можно принять больше, а перед отправкой в ФНС подсказать, что именно нужно исправить.

Итог: недопустимы не только отдельные символы, но и их позиции/сочетания: цифры, спецсимволы, двойные разделители, разделители в начале/конце. Реализацию делайте через нормализацию строки плюс понятные проверки, а не одним огромным нечитаемым regex.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно