我有一个正则表达式来匹配javascript中的电子邮件地址。让我们看一个例子:
var email = "aaa@bbb.com (A,B); ccc@ddd.com (C,D); eee@fff.com (E,F);";
var emails = email.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
这将返回var电子邮件中的所有电子邮件。
现在,我有一个字符串:
var initials = "(A,B)";
我想在缩写值之前只收到电子邮件;
如果var首字母是“(A,B)”,那么我只想获得aaa@bbb.com电子邮件地址。
非常感谢你的帮助!
答案 0 :(得分:1)
的 JavaScript的:强> 的
var input = "aaa@bbb.com (A,B); ccc@ddd.com (C,D); eee@fff.com (E,F);";
var initials = "(A,B)";
var email = input.match(new RegExp("([a-zA-Z0-9]+(?:[-._][a-zA-Z0-9]+)*@[a-zA-Z0-9]+(?:[-.][a-zA-Z0-9]+)*)(?=\\s*" + initials.replace(/([()])/g, "\\$1") + ")"))[0];
print(email);
的输出:强> 的
aaa@bbb.com
测试此代码here。
答案 1 :(得分:-1)
无论你有这样的“example@mail.com(A,B)”还是像这样的“(A,B)example@mail.com”,你所要做的就是拥有第一部分和最后一部分唯一的捕获字母。因此,(A,B)应该被自动排除,以便捕获正则表达式。
如果这不是问题,您可以随时获取正则表达式返回的文本,并使用replace将(A,B)更改为空,就像这样:
var regexresult=str.replace("(A,B)","");
如果该字符串存在,该代码将删除该字符串,否则它将不执行任何操作。