Задать вопрос
@AndreyVitovtov

Как маскировать email с помощью регулярного выражения?

Нужно из username@mail.com.ua получить u***e@m***l.com.ua, пока получаю u***e@m***l.c***m.ua.

Нашел код, но это не совсем то, что нужно:

function maskEmail($email)
{
    $email = preg_replace('/(?<=[\w]{1})[\w-\._\+%]+(?=[\w]{1}@)/', '***', $email);
    return preg_replace('/(?<=[\w]{1})[\w-\+%]+(?=[\w]{1}[.])/', '***', $email);
}
  • Вопрос задан
  • 233 просмотра
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 2
Попробуйте вместо регулярок использовать обычные функции (не силён в php, по тому псевдокод)
функция замаскировать_адрес(адрес) {
  пусть [имя, домен] = адрес.разделить('@')
  пусть новое_имя = имя[0] + повторить('*', имя.длина-1)
  пусть новый_домен = повторить('*', домен.длина-2) + домен.подстрока(домен.длина-2, 2)
  вернуть новое_имя + '@' + новый_домен
}
Ответ написан
Комментировать
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
не надо использовать код смысл которого ты не понимаешь - учи регулярки
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы