当前位置:  开发笔记 > 编程语言 > 正文

JavaScript正则表达式电子邮件验证

如何解决《JavaScript正则表达式电子邮件验证》经验,为你挑选了9个好方法。

此代码始终发出警报"null",这意味着该字符串与表达式不匹配.

var pattern = "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$"; 

function isEmailAddress(str) {

    str = "azamsharp@gmail.com";      

    alert(str.match(pattern)); 
    return str.match(pattern);    

}

James.. 75

如果将正则表达式定义为字符串,则需要对所有反斜杠进行转义,因此不应使用'\ w'代替'\ w'.

或者,将其定义为正则表达式:

var pattern = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/; 

顺便说一句,请不要在客户端验证电子邮件地址.无论如何,你的正则表达式太简单了,无法通过实现.

在这里看到真实的东西:http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html



1> James..:

如果将正则表达式定义为字符串,则需要对所有反斜杠进行转义,因此不应使用'\ w'代替'\ w'.

或者,将其定义为正则表达式:

var pattern = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/; 

顺便说一句,请不要在客户端验证电子邮件地址.无论如何,你的正则表达式太简单了,无法通过实现.

在这里看到真实的东西:http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html


此正则表达式不支持john.smith@gmail.com等地址
它不支持emailadd@gmail.com.sa等电子邮件
为什么电子邮件地址不应该被验证客户端?当然,它是一种更快的验证客户端形式,因为我们不需要通过网络发出多个HTTP请求来验证数据?(这对于可能通过慢速Wifi或移动网络联系服务器的移动应用程序尤为重要).
该表达式有很多不足之处:1)禁止使用许多有效的用户名字符,例如破折号和加号;2)禁止在许多ccTLD中找到超过2个部分的域名,例如“ geek.co.il”;3)禁止使用4个或更多字符的许多新TLD,例如“ mobi”和“ info”;4)完全不支持IDN。

2> 小智..:

这是我在我的页面上使用的那个.

http://www.zparacha.com/validate-email-address-using-javascript-regular-expression/

/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/


不支持“ +”寻址,即“ user+label@gmail.com”。
对于某些[新域],此操作将失败(http://www.names.co.uk/domain-names/new-domain-extensions#domain-directory)

3> 小智..:

我一直在使用这个功能.它返回一个布尔值.

// Validates email address of course.
function validEmail(e) {
    var filter = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/;
    return String(e).search (filter) != -1;
}



4> Brian Agnew..:

你可能有兴趣在这个问题(或这一个),这突出表明,通过正则表达式识别有效的电子邮件地址是解决一个非常困难的问题(如果有的话可解)



5> Nanhe Kumar..:
function isEmailAddress(str) {
   var pattern =/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
   return pattern.test(str);  // returns a boolean 
}



6> M.R.Safari..:

更简单的正则表达式

这里是 :

var regexEmail = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
var email = document.getElementById("txtEmail");

if (regexEmail.test(email.value)) {
    alert("It's Okay")
} else {
    alert("Not Okay")

}

祝好运.


`HUEI90 @ gmail.com'`将通过这种模式,但添加^ =>`/^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+ ([ - .]\w +)*/`可以解决问题

7> Shafiqul Isl..:

有时,大多数注册和登录页面都需要验证电子邮件.在此示例中,您将学习简单的电子邮件验证.首先在html中输入文本输入和这样的按钮输入





您也可以使用此正则表达式进行检查





检查此演示输出,您可以在此处查看

function checkEmail() {
        var email = document.getElementById('txtEmail');
        var filter = /^(([^<>()\[\]\\.,;:\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,}))$/;
        if (!filter.test(email.value)) {
            alert('Please provide a valid email address');
            email.focus;
            return false;
        }
    }



8> Nadia Alraml..:

您可能有兴趣查看此页面,列出用于验证电子邮件地址的正则表达式,其中包含更多一般情况.



9> Robin Orhede..:

电子邮件验证很容易出错.因此,我建议您使用Verimail.js.

为什么?

语法验证(根据RFC 822).

IANA TLD验证

针对最常见的TLD和电子邮件域的拼写建议

拒绝临时电子邮件帐户域,例如mailinator.com

jQuery插件支持

Verimail.js的另一个好处是它对最常见的电子邮件域和注册的TLD有拼写建议.对于拼错常见域名的用户,例如gmail.com,hotmail.com,aol.com,aso,这可以大大降低您的跳出率.

例:

test@gnail.com - >你的意思是test@gmail.com?

test@hottmail.con - >你的意思是test@hotmail.com?

如何使用它?

最简单的方法是在您的页面上下载并包含verimail.jquery.js.之后,通过在需要验证的输入框上运行以下函数来连接Verimail:

$("input#email-address").verimail({
    messageElement: "p#status-message"
});

message元素是一个可选元素,它显示一条消息,例如"Invalid email .."或"你的意思是test@gmail.com?".如果您有表单并且只想验证电子邮件,则可以使用函数getVerimailStatus,如下所示:

if($("input#email-address").getVerimailStatus() < 0){
    // Invalid email
}else{
    // Valid email
}

getVerimailStatus函数根据Comfirm.AlphaMail.Verimail.Status对象返回整数代码.如上所示,如果状态是负整数值,则应将验证视为失败.但如果该值大于或等于0,则应将验证视为成功.

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有