【问题标题】:Validate email with jQuery使用 jQuery 验证电子邮件
【发布时间】:2011-08-12 07:49:50
【问题描述】:

我在页面上有input name="email"button

如何实时验证此输入是否为有效的电子邮件地址?并为按钮添加一些类,如果它有效或“非活动”,则为“活动”类。

这是一个小任务,所以我不想使用插件。

谢谢

【问题讨论】:

  • 这是一项小任务,因此没有理由不使用经过良好测试的插件,它可以节省您的时间。 docs.jquery.com/Plugins/…
  • @Chris - 使用插件验证单个字段(无论如何都不需要验证)没有意义。 @Steve - 验证电子邮件地址的最佳方法是向其发送电子邮件。使用正则表达式(或任何其他类型的解析)是不可靠的,不值得这样做。
  • 使用jQuery Validade插件很简单docs.jquery.com/Plugins/validation

标签: javascript jquery html validation forms


【解决方案1】:

我通常使用这个 javascript 函数在前端进行验证:

function validateEmail(email) 
{ 
 var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ 
 return email.match(re) 
}

它返回真或假。 但无论如何,您通常不应该只在前端验证敏感数据,还要在服务器端验证。

【讨论】:

    【解决方案2】:
    $('#email').bind('keyup', function(){
        if(this.value.test([REGULAR_EXPRESSION])
            //doStuff -- add active class
        else
            //doOtherStuff -- add inactive class
    });
    

    将 [REGULAR_EXPRESSION] 替换为此处找到的正则表达式之一:http://www.regular-expressions.info/email.html

    【讨论】:

    • 类似var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    • 很遗憾,您发现的大多数电子邮件正则表达式都是错误的。顶级域不限于四个字符。 + 是电子邮件地址中的有效字符。
    • this.value 将返回一个字符串,test() 是一个正则表达式的方法,而不是字符串,所以它应该是regExp.test(this.value)
    【解决方案3】:

    我用它来验证邮件 javascript 邮件代码

        function ValidateEmail(inputText)
        {
        var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
        if(inputText.value.match(mailformat))
        {
        document.form1.text1.focus();
        return true;
        }
        else
        {
        alert("You have entered an invalid email address!");
        document.form1.text1.focus();
        return false;
        }
      }
    

    【讨论】:

      猜你喜欢
      • 2018-07-30
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-02
      相关资源
      最近更新 更多