18

jQuery検証プラグインの正規表現が私の要件に対して不十分であることがわかりました。有効な電子メールアドレスとして任意の電子メールアドレスxxx@hotmail.xを受け入れますが、この正規表現を提供できるようにしたい/ ^([a-zA-Z0-9 _.- +])+ \ @(([a-zA -Z0-9-])+。)+([a-zA-Z0-9] {2,4})+ $ /。これにより、アドレスの.com部分全体が検証されます。私は、ばかげた正規表現を取得するよりも、自分の正規表現を提供できることに関心があります(電子メール検証用のばかげた正規表現がないため)

参考までに:私はサーバー側の検証も行っていますが、現時点では、どの電子メールアドレスの正規表現が正しいかについては心配していません。

jQuery検証プラグインの「ルール」セクション内でそれを行う方法はありますか?

これは今の私のルールセクションです:

rules: {
                        email: {
                            required:  {
                                    depends:function(){
                                        $(this).val($.trim($(this).val()));
                                        return true;
                                    }   
                                },
                            email: true
                        },
4

4 に答える 4

25

私はこれをしませんが、答えのためにあなたはあなた自身のカスタム検証を追加する必要があります。

//custom validation rule
$.validator.addMethod("customemail", 
    function(value, element) {
        return /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test(value);
    }, 
    "Sorry, I've enabled very strict email validation"
);

次に、ルールに次を追加します。

rules: {
                    email: {
                        required:  {
                                depends:function(){
                                    $(this).val($.trim($(this).val()));
                                    return true;
                                }   
                            },
                        customemail: true
                    },
于 2012-09-20T14:12:31.673 に答える
6

あなたの正規表現は単純に厳しすぎます、jQueryは正しいです。

"this is a valid adress !"@yes.it.is

これを読むことをお勧めします:複雑な正規表現での電子メールアドレスの検証を停止します

于 2012-09-20T14:06:29.990 に答える
1

これを試して!

   jQuery.validator.addMethod("customEmail", function(value, element) {
             return this.optional(element) || /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i.test(value);
            }, "Please enter valid email address!");

        $(form).validate({
             rules: {
                 email:{
                     required:true,
                     customEmail:true
                 }
             }
        });
于 2018-11-22T11:34:54.850 に答える
0
// Add Custom Email Validation
jQuery.validator.addMethod('customemail', function (emailaddr, element) {
      emailaddr = emailaddr.replace(/\s+/g, '');
      return this.optional(element) || 
      emailaddr.match(/^\b[A-Z0-9._%-]+@@[A-Z0-9.-]+\.[A-Z]{2,4}\b$/i);
 });
于 2017-02-15T17:47:30.203 に答える