1

電子メールアドレスではない文字列内のすべてを検索する必要があります。

これが私のバージョンの電子メールアドレスを見つける方法です。

^[a-zA-Z0-9_.-]+@[a-zA-Z0-9][a-zA-Z0-9-.]+\.([a-zA-Z]{2,6})$

この正規表現を変更して、逆の文字列(任意の文字列内の電子メールアドレス以外のすべて)を見つけたいと思います。


###例1: asdasd

###例2:123@asd.comsda


注:status == true次の行に入力し たいと思います。

var status = myString.match(pattern matches everything that is not an email address);

###パターンを変更することしかできません。他には何も変更できません。

4

5 に答える 5

3

公式の標準はRFC 2822として知られています。メールアドレスの正規表現パターンは次のとおりです。

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

RFC 2822 のより実用的な実装 (二重引用符と角括弧を使用して構文を省略した場合) は、現在でも実際に使用されているすべての電子メール アドレスの 99.99% に一致します。

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

一致しない「単語」のリストを取得するには、myStringJavaScript コードを使用します。

var status = myString.match(/(?:\s|^)(?![a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\S+\b(?=\s|$)/ig);

このデモを確認してください。

于 2012-10-16T13:51:45.360 に答える
0

空の文字列を使用してを呼び出すとreplace、パターンに一致する電子メールのインスタンスを削除できます。

var noEmails = stringWithEmails.replace(/[a-zA-Z0-9_.-]+@[a-zA-Z0-9][a-zA-Z0-9-.]+\.([a-zA-Z]{2,6})/g, '');

先頭^と末尾を削除したことに注意してください$。これらは、パターンを文字列全体に一致させるように強制していました(^は行の始まりであり、は行の$終わりです)。

于 2012-10-16T13:46:23.943 に答える
0

string.replace(/[/[a-zA-Z0-9_.-]+@[a-zA-Z0-9][a-zA-Z0-9-.]+.([a-zA-Z] {2,6})]*/gi, '');

働いた

于 2012-10-16T13:58:06.140 に答える
0
var result=myString.replace('[a-zA-Z0-9_.-]+@[a-zA-Z0-9][a-zA-Z0-9-.]+\.([a-zA-Z]{2,6})', '');
于 2012-10-16T13:50:33.427 に答える
-1

あなたの編集に基づいて、あなたが実際に欲しいのは

var status = ! myString.match(email pattern)

つまり、警備員と一緒にメールパターン(またはΩmegaによって投稿された巨大なもの)を使用します。これは、電子メールアドレスのみであるすべてのものと一致します。これは、必要なものとは正反対なので、ブール値を反転すれば完了です。

于 2012-10-16T14:16:25.403 に答える