Javascript:电子邮件验证

时间:2014-05-11 12:26:24

标签: javascript validation email

我使用函数validateEmail(str)遇到了我的电子邮件验证码。有什么建议吗?

//validates email address form
function validateEmail (str)
    {
    var retVal;
    var atpos=retVal.indexOf("@");
    var dotpos=retVal.lastIndexOf(".");
    if (atpos<1 || dotpos<atpost+2 || dotpos+2>=retVal.length)
    {
    retVal = false;         
    return retVal;
    }

2 个答案:

答案 0 :(得分:4)

有什么建议吗?是。不。

<input type="email" />

问题解决了!


应该注意的是,只要浏览器支持HTML5功能,就可以使用HTML5功能。原因是,验证失败将导致浏览器以非侵入性和一致的本机方式通知用户错误。

较旧的浏览器无法以这种方式验证,但由于规范声明无法识别的type值应默认为text,HTML5完全向后兼容,重新进入IE5.5几乎可以肯定甚至更早 - 甚至可能是IE1!

缺乏验证不是问题。验证应始终始终在服务器端处理,无论您在客户端进行何种验证。例如,在PHP中,您可以使用FILTER_VALIDATE_EMAIL过滤器将其传递给filter_var

答案 1 :(得分:1)

您的代码的问题是您创建一个空变量(var retVal),然后检查此变量而不是给定的字符串:

var retVal;
var atpos=retVal.indexOf("@");
var dotpos=retVal.lastIndexOf(".");

正确的代码是

function validateEmail (str)
{
  var retVal;
  var atpos=str.indexOf("@");
  var dotpos=str.lastIndexOf(".");
  if (atpos<1 || dotpos<atpost+2 || dotpos+2>=str.length)
  {
    retVal = false;         
    return retVal;
  }
  // further code
}