这段代码总是弹出一个 "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);
}
这段代码总是弹出一个 "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);
}
如果您将正则表达式定义为字符串,则所有反斜杠都需要转义,因此您应该使用'\\w'而不是'\w'。
或者,将其定义为正则表达式:
var pattern = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/;
顺便提一下,请不要在客户端验证电子邮件地址。无论如何,您的正则表达式都太简单了,无法通过一个可靠的实现。
在此处查看真正的内容:http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
geek.co.il
;3)禁止使用许多使用4个或更多字符的新TLD,例如mobi
和info
;4)完全不支持IDN。 - Guss这是我在网页上使用的一个验证电子邮件地址的方法。
http://www.zparacha.com/validate-email-address-using-javascript-regular-expression/
/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/
我已经使用这个函数有一段时间了,它返回一个布尔值。
// Validates email address of course.
function validEmail(e) {
var filter = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/;
return String(e).search (filter) != -1;
}
<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();'/>
{2,4}
后面加上一个+
,那么{2,4}
有什么意义呢? - brettwhiteman用更简单的正则表达式
在这里:
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")
}
祝你好运。
function isEmailAddress(str) {
var pattern =/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
return pattern.test(str); // returns a boolean
}
test@test.info
不是一个电子邮件。 - Dziad Borowy电子邮件验证很容易出错。因此,我建议您使用Verimail.js。
为什么?
Verimail.js的另一个优点是,它具有对最常见的电子邮件域名和注册TLD的拼写建议。这可以大大降低用户对常见域名(如gmail.com,hotmail.com,aol.com等)拼写错误的反弹率。
例子:
如何使用它?
最简单的方法是下载并包含verimail.jquery.js到您的页面中。 然后,通过在需要验证的输入框上运行以下函数来连接Verimail:
$("input#email-address").verimail({
messageElement: "p#status-message"
});
消息元素是一个可选元素,用于显示诸如“无效的电子邮件”或“你的意思是test@gmail.com吗?”之类的消息。如果您有一个表单,并且只想在电子邮件经过验证后继续使用,请使用下面所示的getVerimailStatus函数:
if($("input#email-address").getVerimailStatus() < 0){
// Invalid email
}else{
// Valid email
}
getVerimailStatus函数返回一个整数代码,根据对象Comfirm.AlphaMail.Verimail.Status。如上所示,如果状态是负整数值,则应将验证视为失败。但是,如果该值大于或等于0,则应将验证视为成功。
虽然来晚了,但我还是要说一句...
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)
}
var pattern = /^[A-Za-z0-9._%+-]+@([A-Za-z0-9-]+\.)+([A-Za-z0-9]{2,4}|museum)$/;