/^[a-z]+([-_]?[a-z0-9]+){0,2}$/i
Начинается и кончается на букву/цифру и содержит не более двух "_"/"-" и не подряд. Т.е. пропустит "admin_0-15", "user", "user-lol" и не пропустит "admin--12", "user_lol-", "lamer--", "-a-"
Submitted by anonymous - 6 years ago