Ich würde sagen, das ist keine gute Idee.
Ich würde empfehlen, einfache Regex zu verwenden:
([a-z_][a-z0-9_]{0,30})
Überprüfen Sie die folgenden Links:
https://stackoverflow.com/questions/6949667/what-are-the-real-rules-for-linux-usernames-on-centos-6-and-rhel-6
https://unix.stackexchange.com/questions/157426/what-is-the-regex-to-validate-linux-users
Die Verwendung von '@' in einem Benutzernamen würde es unmöglich machen, diesen Benutzernamen als lokalen Teil einer E-Mail-Adresse zu verwenden, also würde ich sagen, dass das keine gute Idee ist.