2016-08-11 7 views
-2

ユーザーが任意の種類のメールを入力できるメールフィールドを検証したいと考えています。 Outlookからペーストされた電子メールアドレスをユーザーがコピーすると、regexを使用した私の妥当性チェックが失敗します。 OutlookからコピーされたメールアドレスはOutlookからコピーしたメールアドレスを確認する

M, Karan <[email protected]> 

など、さまざまなルックスと私の入力は[email protected],M, Karan <[email protected]>のように見えます。この入力を検証する方法。電子メールは、入力要素で利用可能な見通しからコピーされたとき

++コードスニペットを

を加えることは、機能以下にカンマ区切りでそれを分割して、個々の電子メールを通過AM、

function validateEmail(email) { 
    var re = /^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;  
    return re.test(email); 
} 

このロジックは壊れました。

助けを楽しみにしています。

+0

この質問はあまりにも曖昧です。試したコードやコードの例を示してください。 – Twisty

+0

お返事ありがとうございます。私はちょうど使用しているコードスニペットを追加しました。モバイルから追加するのと同じように、コードスニペットの書式設定オプションは表示されません。謝罪。 – Krupa

+0

私はあなたが文字列を分解することをお勧めします。複数のパスを実行する必要があります。まず、メールアドレスには含まれない特定の文字があることがわかります。スペースは最初の明白な文字です。私はスペース上の文字列を分割し、それぞれが電子メールかどうかをテストします。 – Twisty

答えて

0

1.ソリューション 使用の正規このような式(しかし、コンクリート、この正規表現は:)世界の最高ではありません):電子メールを解析

^(([a-zA-Z\-0-9,.: ])*<){0,1}(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))>{0,1}$ 

2.ソリューション 書き込みのJavaScript機能正規表現を使用してください。ここに構文解析関数の例を示します。

function parseEmail(origin) { 
    return origin.substring(origin.lastIndexOf('<')+1, origin.lastIndexOf('>')); 
} 
関連する問題