2017-04-26 9 views
0

AngularJSの電子メール入力を検証したいと思います。入力が[email protected]の場合、ユーザーはGmailを入力するように提案されます...など。 は、ここで私が使用しているものです:ドメインチェックによるAngularJS電子メール認証

<input type="text" class="form-control" name="email" ng-model="txtmail" ng-pattern="/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/" required placeholder="[email protected]"> 

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

+0

[ask]をお読みください。重要なフレーズ:「検索と研究」と「あなたがそれを自分で解決することを妨げた困難を説明する」 –

+0

[AngularJS Developer Guide - Custom Validation](https://docs.angularjs.org/guide/forms#custom-validation)を参照してください。 – georgeawg

+0

@georgeawg、これは助けてくれてありがとう、今私はドキュメントに基づいて@ gmail.comを検証することができた:/^[a-z0-9!#$%&'*+/=?^_'{|}~ .- ] + @ gmail \ .com $/iしかし、私は今yahoo.comのような他のドメインを検証することはできません – phpguy

答えて

0

最大のヘルプは、この上のGoogleのドキュメントです:私は何も考えることはできませんが、

https://docs.angularjs.org/guide/forms#custom-validation

場合、そこに電子メールドメイン上のスペルミスのための提案を示すことが現在である(パッケージ賢明)あなたはチェックしたいドメインのリストを持っていますが、それは可能です(throughまたはstatements)。ただ|

でそれを追加し、それぞれの新しいドメインの電子メールプロバイダの場合

^[a-z0-9!#$%&'*+/=?^_`{|}~.-][email protected](yahoo\.com|gmail\.com|msn\.com|hotmail\.com|live\.com) 

それとも

^[A-Z0-9._%+-][email protected](yahoo\.com|gmail\.com|msn\.com|hotmail\.com|live\.com) 

:あなたのng-patternでこのような何かを行うには

てみてください覚えておいてください。あなたのng-pattern内の機能も)。これは、に上記の電子メールのいずれかを使用しようとした誰もが発生します

^[A-Z0-9._%+-][email protected](?!yahoo\.com|gmail\.com|msn\.com|hotmail\.com|live\.com) 

:あなたはたとえば言えば

また、ちょうどそのように、否定先読み(?!...)を追加し、電子メールをブロックしたいです失敗します。

+0

参照していただきありがとうございます。問題は、@ gnail.comと入力した場合でも同じようになりました。すべてのドメインが/^[a-z0-9!#$%& '* +/=?^ _ '{|}〜.-] + @ gmail \ .com | com | [a-z0-9 - ] + @ yahoo \ .com | com $/i – phpguy

+0

@phpguyコード例は、今すぐうまく動作するはずです:) – NoReceipt4Panda

+0

@VolcoMeter、ありがとうございました:)しかし、それでも結果は得られませんでした。 [email protected]は有効な電子メールとみなされます:( – phpguy

関連する問題