Код Middle Логирование, реагирование и ПДн обновлено
Маскирование email и номеров карт в логах
Условие
Напишите maskPii(text), которая маскирует персональные данные в строке лога:
- email вида
local@domain.tld(local из латинских букв, цифр и._%+-, domain из латинских букв, цифр, точек и дефисов, затем точка и не меньше двух букв) заменяется на первый символ local, затем***@и домен целиком:ivan.petrov@mail.ru→i***@mail.ru; - последовательность из 13-19 цифр подряд (не являющаяся частью более длинной последовательности цифр) считается номером карты: все цифры, кроме последних четырёх, заменяются на
*.
Остальной текст не меняется.
Примеры
maskPii("user ivan.petrov@mail.ru logged in") // "user i***@mail.ru logged in"
maskPii("card=4111111111111111 ok") // "card=************1111 ok"
maskPii("a@b.co") // "a***@b.co"
Как подойти
Подсказки: 2
- Два вызова
replaceс регулярными выражениями. - Просмотр назад
(?<!\d)и вперёд(?!\d)отделит последовательность от более длинных.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.