Hmmm, nawet JS ma opcję validacji
wyrażeniami regularnymi 
Myślę, że po stronie JS powinieneś sprawdzać poprawność stringa i ewentualnie wyciąć niedozwolone znaki (też można to zrobić regex'ami). Natomiast po stronie php powinieneś sprawdzić unikalność loginu, ewentualnie umieścić przycisk koło inputa z loginem "Sprawdź dostępność nazwy" i po kliknięciu przez ajax leci zapytanie do bazy danych