请参阅下面的Javascript代码。正在检查电子邮件模式的else if块不允许任何电子邮件ID。 match()
函数返回什么?请帮忙。
使用过的test()
空场:工作正常 wron mail id:工作正常 正确的电子邮件ID:无法正常工作
var pattern = new RegExp("/^(([^<>()[\]\\.,;:\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(!accountantEmail){
$("#infoTextMsg").hide();
$("#accountantEmailNoDataErr").show();
$("#accountantEmailInvalidFormat").hide();
$("#accountant_email").focus();
return false;
}
else if(!(pattern.test(accountantEmail))){
$("#accountantEmailInvalidFormat").show();
$("#infoTextMsg").hide();
$("#accountantEmailNoDataErr").hide();
$("#accountant_email").focus();
return false;
}
答案 0 :(得分:0)
使用正则表达式可能是最好的方法。这是一个例子(live demo):
function validateEmail(email)
{
var re = /^(([^<>()[\]\\.,;:\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,}))$/;
return re.test(email);
}
但请记住,不应该只依赖JavaScript验证。可以轻松禁用JavaScript。这也应该在服务器端验证。
答案 1 :(得分:0)
Javascript match返回包含匹配项的数组。
这是我使用的正则表达式:
var pattern = "[-0-9a-zA-Z.+_]+@[-0-9a-zA-Z.+_]+\.[a-zA-Z]{2,4}";
if(!(accountantEmail.match(pattern))) {
return false;
}
答案 2 :(得分:0)
对于validation
方案,您应该使用RegExp#test
函数。
var pattern = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if (!pattern.test(accountantEmail)) {
$("#accountantEmailInvalidFormat").show();
$("#infoTextMsg").hide();
$("#accountantEmailNoDataErr").hide();
$("#accountant_email").focus();
return false;
}
如其他帖子所评论,match
功能用于群组捕获。
另请注意,您在pattern
上指定了/
。如果您将RegExp指定为字符串,则无需执行此操作。