4

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);

これにより、varemailsのすべての電子メールが返されます。

今、私は文字列を持っています:

var initials = "(A,B)";

そして、イニシャル値の前の電子メールのみを取得したいと思います。

varのイニシャルが「(A、B)」の場合、aaa@bbb.comのメールアドレスのみを取得したいと思います。

どうもありがとうございました!

4

2 に答える 2

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

ここでこのコードをテストします。

于 2012-07-04T11:16:07.520 に答える
-1

この「example@mail.com(A、B)」のようなものでも、この「(A、B)example@mail.com」のようなものでも、あなたがしなければならないのは、唯一のキャプチャの最初と最後の部分を持っていることだけです手紙。したがって、(A、B)は、正規表現をキャプチャするために自動的に除外される必要があります。

それが問題でない場合は、正規表現によって返されるテキストをいつでも取得し、replaceを使用して(A、B)を何も変更しないようにすることができます。

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

そのコードは、文字列が存在する場合は削除し、存在しない場合は何もしません。

于 2012-07-04T09:52:32.137 に答える