Hola.
esto es una expresion regular:
Código:
var reg=/(^[a-zA-Z0-9.@ ]{4,40}$)/;
y por loque veo y si la memoria no me falla, la razon por la cual cuando ingresas el caracter -, te salga error, es por que en el patron no se esta validando la entrada del caracter -, por lo cual te sale el error...