Легко, просто добавьте эти символы к регулярному выражению
$username = preg_replace('/[^a-zA-Z0-9._-]/','',$username)
. должен быть экранирован, потому что это символ 'matchall', - идет в конце, потому что в противном случае он будет использоваться для определения диапазона (мы могли бы, конечно, только экранировать его).