这段代码总是发出警报"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
这是我在我的页面上使用的。
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;
}
用更简单的 正则表达式
这里是 :
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")
}
祝你好运。