私はjQueryvalidateを使用して電子メールアドレスを検証しましたが、テスト中に、ak@cmmmm.c
またはak@gh.com.com
受け入れてはならない電子メールアドレスを受け入れます。したがって、jquery.validate.jsを編集して、独自の正規表現を挿入できますか。より良い解決策があれば私を助けてください。
ありがとう、あなたからのどんな助けも私にとって貴重です。
プラグインのソースコードを編集することは決して良い考えではありません-新しいバージョンにアップグレードしたい場合はどうなりますか?
ただし、独自のjQuery vlaidateプラグインを作成することはできます。これを行う方法の概要については、こちらをご覧ください。
そうは言っても、組み込みの電子メール正規表現は、これから取得するのとほぼ同じくらい堅牢です。他のケースの電子メール検証を中断せずに、指摘したようなケースを防ぐためにできることはそれほど多くありません。
確かにあなたはできる:
私が理解している限り、これはあなたのjquery.validate.jsプラグインです。 http://code.google.com/p/jqueryjs/source/browse/trunk/plugins/validate/jquery.validate.js?r=6243
行964には、電子メールを検証する関数があります。
email: function(value, element) {
// contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);
},
その巨大な線をあなたが望む表現で置き換えるだけで、これは大丈夫です。メールの正規表現の例を次に示します 。JavaScriptでメールアドレスを検証しますか?
私はあなたに私のバリデーターを伝えたくありません。なぜなら、あなたが正しいものとして正確に何が必要かわからないからです。
ただし、その人が入力した電子メールが正しいものであると確信できる方法はないことに注意してください。justforfun@gmail.comはすべてのバリデーターに合格しますが、それが有効なユーザーのメールであることをどのように確認できますか。
正しい電子メールを提供することに本当に興味がある人は、何十回もチェックします(大使館のWebサイトで素敵なバリデーターを見たことがありません)