Robustheits-Fix: RFC-5321-konforme E-Mail-Local-Parts (keine Rand-Punkte/Doppelpunkte) + sAMAccountName-Fallback bei Nicht-Latin-Namen + Release v11
This commit is contained in:
@@ -19,13 +19,18 @@ function transliterateUmlauts(str) {
|
||||
* Normalisiert einen Namen für den lokalen Teil einer E-Mail-Adresse:
|
||||
* Umlaute → ASCII, Kleinbuchstaben, Leerzeichen → Punkte, nur a-z0-9. erlaubt.
|
||||
* Beispiel: "Jürgen Schröder" → "juergen.schroeder"
|
||||
*
|
||||
* RFC 5321-konform: Kein führender/abschließender Punkt, keine Doppelpunkte
|
||||
* (".."), kein leerer Local-Part (gibt '' zurück — Aufrufer muss Fallback haben).
|
||||
*/
|
||||
function toEmailLocalPart(str) {
|
||||
if (typeof str !== 'string') return '';
|
||||
return transliterateUmlauts(str)
|
||||
.toLowerCase()
|
||||
.replace(/\s+/g, '.')
|
||||
.replace(/[^a-z0-9.]/g, '');
|
||||
.replace(/[^a-z0-9.]/g, '')
|
||||
.replace(/\.{2,}/g, '.') // ".." → "." (durch aufeinanderfolgende Trenner)
|
||||
.replace(/^\.+|\.+$/g, ''); // führende/abschließende Punkte entfernen (RFC 5321)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user