Обновить

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

Чулан
Существует множество материалов по регуляркам, множество готовых шаблонов, которые можно просто взять и использовать в валидаторах, поисках и т.д. Обычно это правильные регулярки, для валидации, например, введенного адреса электронной почты. Но мне недавно выпала задача по поиску «неправильных» данных (когда пользователи знают что нельзя писать свои контакты, но пишут извращенными способами), а конкретно email'ов и телефонов.

Задача стояла такая: "Не дать пользователям публиковать свои номера телефонов и адреса электронной почты на сайте".

Я, к сожалению, не смог нагуглить найти готового решения в интернете и поэтому хочу поделиться парой регулярных выражений, которые написал для этих целей.



Телефон:
^\s[-_\[\]0-9 ()]{10,20}^
Email:
^[-.\w]+(?:[-_( \[])*(?:@|at)(?:[-_) \]])*(?:[-\w])+(?:[-_ \[(]*)(?:[.]|dot)(?:[-_ \])]*)(?:[\w.]*)^

Данные регулярки покрыли все мои потребности по поиску скрытой контактной информации на нужном мне сайте.

Вот наглядный пример того, какого вида адреса мне встречались:
Email example

Уточню, что сайт не русский, поэтому выражения ориентированы на англоязычный контингент пользователей.

PS
для любителей PHP можно сделать хелперы примерно следующего вида:

if (!function_exists('getPhonePattern')) {
	function getPhonePattern()
	{
		return '^\s[-_\[\]0-9 ()]{10,20}^';
	}
}

if (!function_exists('getEmailPattern')) {
	function getEmailPattern()
	{
		return '^[-.\w]+(?:[-_( \[])*(?:@|at)(?:[-_) \]])*(?:[-\w])+(?:[-_ \[(]*)(?:[.]|dot)(?:[-_ \])]*)(?:[\w.]*)^';
	}
}

if (!function_exists('removeContacts')) {
	function removeContacts($data)
	{
		$data = preg_replace(getEmailPattern(), ' *** hidden email *** ', $data);
		$data = preg_replace(getPhonePattern(), ' *** hidden phone *** ', $data);
		return $data;
	}
}



Не забывайте, что вы можете сами дополнять эти регулярки.
Теги:regexpemailphonephp
Хабы: Чулан
Рейтинг 0
Количество просмотров 227 Добавить в закладки 6
Комментарии
Комментарии 23

Похожие публикации

Business Development Representative
от 1 000 $MixRankМожно удаленно
PHP-разработчик (Junior)
от 25 000 до 65 000 ₽LAPTOP.RUКострома
PHP-разработчик (Middle)
от 130 000 до 170 000 ₽LAPTOP.RUМоскваМожно удаленно
PHP-разработчик (Middle)
от 80 000 до 120 000 ₽LAPTOP.RUМожно удаленно
PHP-разработчик
от 50 000 ₽StatnameМожно удаленно

Лучшие публикации за сутки