Menurut saya itu bukan ide yang bagus.
Saya akan merekomendasikan untuk menggunakan regex sederhana:
([a-z_][a-z0-9_]{0,30})
Periksa tautan berikut:
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
Menggunakan '@' dalam nama pengguna akan membuat nama pengguna tersebut tidak mungkin digunakan sebagai bagian lokal dari alamat email, jadi menurut saya itu bukan ide yang bagus.