Java/JS-Bibliothek zum Erkennen (nicht Validieren) von E-Mails und/oder Telefonnummern in Text

Gibt es eine Java- oder Javascript-Bibliothek, die sich mit der Erkennung von E-Mail-/Telefonnummern in Text befasst? Ich spreche nicht davon, sie zu validieren, ich möchte nur etwas finden, das möglicherweise wie eine E-Mail-Adresse einer Telefonnummer aussehen könnte.

Wir versuchen zu verhindern, dass Benutzer diese Art von Informationen über unsere Plattform senden.

Antworten (1)

Verwenden Sie einfach reguläre Ausdrücke.

Verwenden Sie für eine E-Mail-Adresse einfach den regulären Ausdruck für mindestens einen Buchstaben oder eine Zahl, gefolgt von @, gefolgt von mindestens einem Buchstaben oder einer Zahl, einem Punkt und mindestens einem weiteren Buchstaben, also: a@b.ckönnte möglicherweise eine E-Mail-Adresse sein, wie somereallylongname@company.comz. ein mögliches re wäre\w+@\w\.\w

Telefonnummern wären, je nachdem, ob Sie nur nach Ferngesprächsnummern suchen, so etwas wie \d{2}[ -]*\d{3}[ -]*\d{3,}, aber Sie könnten besser dran sein, potenzielle Telefonnummern mit einem regulären Ausdruck zu finden, als die Java/JS-Bibliothek google libphonenumber zu verwenden, die eine viel ausgefeiltere Bibliothek zum Überprüfen ist und Validierung von Telefonnummern und ermöglicht es Ihnen zu überprüfen, ob es sich um eine mögliche Telefonnummer handelt und ob es sich um eine gültige Telefonnummer handelt.

Da TLDs mindestens 2 Zeichen haben und 2nd-Level-Domains meist auch, könnte man die zugehörige Regex auf verbessern (um auch Multilevel-Domains wie ) [w\.]+@(\w{2,}\.)+\w{2,}zu berücksichtigen . abc.xyz.comTelefonnummern sind etwas kniffliger: Von der Verwendung von Formatierungen wie +1-123-55555-321via +1 (0123) 55555 321bis hin zu einfach 012355555321kann alles eine Telefonnummer sein. Da man nicht alle filtern kann [0-9\+\-]*, würde dies einen ausgefeilteren Filter erfordern – den einige Bibliotheken möglicherweise bereits abdecken (also besser verwenden, als das Rad neu zu erfinden).