在jquery中验证电子邮件字段中域名的最有效方法?

时间:2011-12-07 11:01:37

标签: jquery asp.net-mvc-3 email-validation

我需要在电子邮件字段中只进行一次验证,即域名说'某事'。

示例:

adarsh.k@something.com -valid
adarsh.k@gmail.com - invalid

我在下面给出的文本框中输入了emailid,你能告诉我正则表达式,以便进行上述基本验证吗?

 var emailId = $('#txtRcpntAdress').val();

我正在尝试使用下面给出的reqular表达式。

var validDomain = "something";
var pattern = new RegExp("([A-Za-z0-9_\-\.])"+"@" + validDomain + "(.[a-zA-Z]{2,4})$");

它会抛出错误

Microsoft JScript runtime error: Invalid range in character set

你能帮忙吗?

谢谢, 阿达什讷

2 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

   var validDomain = "something";
   var pattern = new RegExp("^[A-Za-z0-9_\\-\\.]+@" + validDomain + "(.[a-zA-Z\\.]{2,5})$");
   var emailId = "adarsh.k@something.com";

   if( emailId.match(pattern) )
   {
     // ... email is valid
   }

如果您想匹配完整的域,只需更改前两行:

   var validDomain = "something.com";
   var pattern = new RegExp("^[A-Za-z0-9_\\-\\.]+@" + validDomain + "$");

答案 1 :(得分:0)

var reg = /^\w+@something.com$/;

reg.test("adarsh.k@something.com")
> true

reg.test("adarsh.k@gmail.com")
> false

编辑:好像我误解了你的问题...... 正确的正则表达式是:

var validDomain = "something";
var pattern = new RegExp("([A-Za-z0-9_\\-\\.])"+"@" + validDomain + "(.[a-zA-Z]{2,4})$");