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:
Kühn
2026-09-17 13:15:27 +02:00
parent 1c28917bb5
commit 4d5ab818e9
6 changed files with 29 additions and 5 deletions

View File

@@ -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)
}
/**