簡體   English   中英

匹配特定單詞之前的電子郵件地址

[英]Match an email address which is before a specific word

我有一個正則表達式匹配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電子郵件地址。

非常感謝你的幫助!

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

在這里測試此代碼。

無論你有這樣的“example@mail.com(A,B)”還是像這樣的“(A,B)example@mail.com”,你所要做的就是擁有唯一捕獲的第一部分和最后一部分字母。 因此,(A,B)應該被自動排除以捕獲正則表達式。

如果這不是問題,您可以隨時獲取正則表達式返回的文本,並使用replace將(A,B)更改為空,如下所示:

var regexresult=str.replace("(A,B)","");

該代碼將刪除該字符串,如果它存在,否則它將什么都不做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM