我从Chinaren抄过来的 
用了好几年了。
function isEmail(email)
{
invalidChars = " /;,:{}[]|*%$#!()`<>?";
if (email == "")
{
return false;
}
for (i=0; i< invalidChars.length; i++)
{
badChar = invalidChars.charAt(i)
if (email.indexOf(badChar,0) > -1)  {
return false;
}
}
atPos = email.indexOf("@",1)
if (atPos == -1)  {   return false;  }
if (email.indexOf("@", atPos+1) != -1) {   return false;  }
periodPos = email.indexOf(".",atPos)
if(periodPos == -1) {
return false;  // and at least one "." after the "@"
}
if ( atPos +2 > periodPos)  {
return false;  // and at least one character between "@" and "."
}
if ( periodPos +3 > email.length)  {   return false;  }
return true;
}