<script type="text/javascript"> var str2 = '1234565@qq.c!!om'; var reg = /(^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+)|(^$)/; alert(reg.test(str2)); </script>为什么为返回true;
// 少了一个结束符号 所以匹配到'1234565@qq.c'这一段就返回true了// 下面加了结束符号$/(^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+$)|(^$)/;// 但还是 建议改成如下/(^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+$)|(^$)/;