正则表达式电子邮件验证

这段代码总是警告 "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);


}
463638 次浏览

如果将正则表达式定义为字符串,那么所有反斜杠都需要转义,因此应该使用“ w”而不是“ w”。

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

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

顺便说一句,请不要在客户端验证电子邮件地址。您的正则表达式太简单了,无论如何都不可能被当作一个可靠的实现。

看看这里真正的东西: 译自: 美国《每日邮报》网站(http://www.ex-parrot.com/~ pdw/Mail-RFC822-Adresss.html)原著: http://www.ex-parrot.com/~ pdw/mail-RFC822-Adresss.html 原著: norefrer http://www.ex-parrot.com/~pdw/mail-rfc822-address.html :

您可能对 这个问题(或 这个)感兴趣,它强调了这样一个事实,即通过 regexp 识别有效的电子邮件地址是一个非常难以解决的问题(如果完全可以解决的话)

最好使用:

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

这允许域,如: 随便吧,信息(4个字母在结束)

也用于测试,使用

pattern.test("exampleemail@testing.info")

如果成功则返回 true

Http://www.w3schools.com/js/js_obj_regexp.asp

我使用这个函数有一段时间了,它返回一个布尔值。

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

这是我在我的页面上使用的一个。

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

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

你应该记住,A-Z,A-Z,0-9。,_ and-不是电子邮件地址开头的唯一有效字符。

例如,Gmail 允许你在地址中加一个“ +”标志,以“伪造”另一封电子邮件(例如,someone@Gmail.com 也会收到发送给 someone + else@Gmail.com 的电子邮件)。

Micky.o’finnagan@where. com 不会喜欢你的代码阻止他们输入他们的地址... 撇号在电子邮件地址中是完全有效的。

上面提到的关闭“检查”一个有效的电子邮件地址,正如它自己所说,是相当天真的:

Http://code.google.com/p/closure-library/source/browse/trunk/closure/goog/format/emailaddress.js#198

我建议你在客户端代码中要非常开放,然后更加重量级,比如发送一封带有链接的电子邮件来检查它是否“有效”(对于他们的提供商来说,在语法上是有效的,也没有拼写错误)。

大概是这样:

var pattern = /[^@]+@[-a-z\.]\.[a-z\.]{2,6}/

记住,理论上你可以有两个@符号在一个电子邮件地址,我甚至没有包括字符以外的拉丁1域名!

Http://www.eurid.eu/en/eu-domain-names/idns-eu

Http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx

你也可以尝试这个表达式,我已经在许多电子邮件地址中测试过了。

var pattern = /^[A-Za-z0-9._%+-]+@([A-Za-z0-9-]+\.)+([A-Za-z0-9]{2,4}|museum)$/;

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

为什么?

  • 语法验证(根据 RFC822)。
  • IANA 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 元素是一个可选的元素,它显示一条消息,例如“ Invalidemail。."或者“你是说 test@gmail.com 吗?”.如果您有一个表单,并且只想在电子邮件被验证后继续,您可以使用函数 getVerimailStatus,如下所示:

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

GetVerimailStatus-函数根据对象 Comfird 返回一个整数代码。AlphaMail.Verimail.报告情况。如上所示,如果状态为负整数值,则应将验证视为失败。但是如果该值大于或等于0,则应将验证视为成功。

我一直在用这个。

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

它允许 +@之前 (xyz+abc@xyz.com)

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

简单但强大的电子邮件验证检查电子邮件语法:

var EmailId = document.getElementById('Email').value;
var emailfilter = /^[\w._-]+[+]?[\w._-]+@[\w.-]+\.[a-zA-Z]{2,6}$/;
if((EmailId != "") && (!(emailfilter.test(EmailId ) ) )) {
msg+= "Enter the valid email address!<br />";
}

有时大多数注册和登录页面需要验证电子邮件。在这个示例中,您将学习简单的电子邮件验证。 首先在 html 中获取一个文本输入,然后像下面这样获取一个按钮输入

<input type='text' id='txtEmail'/>
<input type='submit' name='submit' onclick='checkEmail();'/>


<script>
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;
}
}
</script>

也可以使用这个正则表达式进行检查

<input type='text' id='txtEmail'/>
<input type='submit' name='submit' onclick='checkEmail();'/>


<script>
function checkEmail() {


var email = document.getElementById('txtEmail');
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;


if (!filter.test(email.value)) {
alert('Please provide a valid email address');
email.focus;
return false;
}
}
</script>

检查这个演示输出,你可以在这里检查

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;
}
}
<input type='text' id='txtEmail'/>
<input type='submit' name='submit' onclick='checkEmail();'/>

如果电子邮件无效,然后给警报消息,如果有效的电子邮件,然后没有警报消息。 了解有关正则表达式的更多信息

Https://www.w3schools.com/jsref/jsref_obj_regexp.asp

希望能对你有所帮助

更简单的

这就是:

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")


}

祝你好运。

var emailRegex = /^[A-Z0-9_'%=+!`#~$*?^{}&|-]+([\.][A-Z0-9_'%=+!`#~$*?^{}&|-]+)*@[A-Z0-9-]+(\.[A-Z0-9-]+)+$/i;
if(emailRegex.test('yoursamplemail'))
alert('valid');
else
alert('invalid');

可以向 String 对象添加函数

//Add this wherever you like in your javascript code
String.prototype.isEmail = function() {
return !!this.match(/^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/);
}


var user_email = "test.email@example.com";


if(user_email.isEmail()) {
//Email is valid !
} else {
//Email is invalid !
}

派对有点晚了,不过没什么大不了的。

function isEmailValid(emailAdress) {
var EMAIL_REGEXP = new RegExp('^[a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,15})$', 'i');
return EMAIL_REGEXP.test(emailAdress)
}

Http://jsfiddle.net/yrshaikh/xvd6h/