Lite sent svar, men:
Inte behöver man väl escapa punkt inom klamrar i js?
Kanske /[A-Za-z0-9_\-\.]+/ istället för /[-A-Za-z0-9_.]+/
(nu är jag inte så insatt i regexp:ar i js så det kan hända att jag irrar här)
Sista biten verkar dessutom lite väl generös
@[^ ]+\.[A-Za-z]{2,4} istället för @[^ ]+\.[A-Za-z0-9]{2,4} borde väl räcka
(och att godta allt utom mellanslag är väl generöst men man kanske borde inskränka lite till?)
Vad är det för mejladresser som inte blir godkända typ bö
[email protected] eller
[email protected]el ??