[英]Using JavaScript RegExp to valid email. Regex special characters not working
我有这个JavaScript函数:
function emailaddresscheck() {
var emailregex = new RegExp("[A-Z0-9._%+-]+@[A-Z0-9.-]+\.(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)");
var emailstring = $("#email-address").val();
if (emailregex.test(emailstring)) {
$("#email-address-check").fadeIn(100);
return true;
}
else if ($("#email-address").val().length <= 5) {
$("#email-address-check").fadeOut(100);
return false;
}
}
如果我在RegExp构造函数中有一个简单的字符串, if
条件就会触发,但是这个更复杂的正则表达式不起作用。
我哪里错了?
更新:
这是完成的工作代码:
function emailaddresscheck() {
var emailregexp = new RegExp("^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.(?:[A-Za-z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$");
var emailstring = $("#email-address").val();
if (emailregexp.test(emailstring) === true) {
$("#email-address-check").fadeIn(100);
return true;
}
else if (emailregexp.test(emailstring) === false) {
$("#email-address-check").fadeOut(100);
return false;
}
}
使用RegExp
构造函数创建正则表达式时, 需要双重转义特殊字符,因为它们位于字符串中。
new RegExp("[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)");
-^-
或者只使用文字正则表达式:
/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.