Есть ли какая-нибудь библиотека Java или Javascript, которая занимается обнаружением номеров электронной почты/телефонов в тексте? Я не говорю об их проверке, просто хочу найти что-то, что потенциально может выглядеть как адрес электронной почты или номер телефона.
Мы пытаемся запретить пользователям отправлять такую информацию через нашу платформу.
Просто используйте регулярные выражения.
Для адреса электронной почты просто используйте регулярное выражение, по крайней мере, для одной буквы или цифры, за которой следует @, затем, по крайней мере, одна буква или цифра, точка и, по крайней мере, еще одна буква, поэтому: a@b.c
возможно, это адрес электронной почты, а может и т somereallylongname@company.com
. д. возможный повтор был бы\w+@\w\.\w
Телефонные номера будут, в зависимости от того, ищете ли вы только междугородние номера, что-то вроде, \d{2}[ -]*\d{3}[ -]*\d{3,}
но вам может быть лучше найти потенциальные номера телефонов с помощью регулярного выражения, а затем использовать библиотеку java/JS google libphonenumber , которая является гораздо более сложной библиотекой для проверки и проверка номеров телефонов и позволяет вам проверить, является ли что-то возможным номером телефона и является ли он действительным номером телефона.
Иззи
[w\.]+@(\w{2,}\.)+\w{2,}
(чтобы также учитывать многоуровневые домены, такие какabc.xyz.com
). С телефонными номерами дело обстоит немного сложнее: от использования форматирования вроде+1-123-55555-321
via+1 (0123) 55555 321
до просто012355555321
, все может быть телефонным номером. Поскольку невозможно отфильтровать все[0-9\+\-]*
, для этого потребуется более сложный фильтр, который может уже охватывать какая-то библиотека (поэтому лучше использовать ее, чем заново изобретать колесо).