-3

重複の可能性:
JQueryは電子メールアドレスの正規表現を検証します

こんにちは私は電子メール入力フィールドを参照するフォームに入力を提出しました、そしてユーザーが送信ボタンをクリックしたとき私は電子メール入力フィールド値がこのような形式であることを確認したいです

example@hotmail.com

また

example@gmail.com

また

example@yahoo.com

入力フィールドはこれです

<p>
            <label>Email</label>
            <input type="text" name="Email"/>
            <span class="errorMessage"></span>
        </p>

jqueryコード

$(document).ready(function(){
    $('#suform').on('submit', function(e){
        e.preventDefault();
        var errorCount = 0;
        $('span.errorMessage').text(''); // reset all error mesaage
        $('input').each(function(){
            var $this = $(this);
            if($this.val() === ''){
                var error = 'Please fill ' + $this.prev('label').text(); // take the input field from label
                $this.next('span').text(error);
                errorCount = errorCount + 1;   
            }
        });
        if(errorCount === 0){
            var mobileNumber = $('input[name=MNumber]');
            var email = $('input[name=Email]');
            if(isNaN(parseFloat(mobileNumber )) && !isFinite(mobileNumber )) {
                var error = 'Mobile number incorect.';
                $('input[name=MNumber]').next('span').text(error);
                errorCount = errorCount + 1; 
            }else{      
                var password= $('input[name="Password"]').val();
                var repass= $('input[name="RePassword"]').val();
                if(password!=repass){ // ensrue the two passwords are the same
                    var error2 = 'Password not matching';
                    $('input[name="RePassword"]').next('span').text(error2)
                    errorCount = errorCount + 1;  
                }else{
                    $(this)[0].submit(); // submit form if no error
                }
            }
        }
    });
});

私のhtml、css、jqueryのコードはここにあり ます

4

3 に答える 3

2

正規表現は検証する1つの方法です:

function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\
".+\"))@((\[[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);
} 

ユーザーが入力した電子メールをこの関数に渡すと、その形式がチェックされ、それに応じてtrueまたはfalseが返されます

于 2012-05-12T19:25:25.383 に答える
2

私があなたを正しく理解しているなら、あなたはフォームに記入された電子メールアドレスを検証したいと思います:

あなたの機能に追加

// validate proper email address
var reg = /^((([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;

if (reg.test(value) == false) {
  // email invalid, do stuff
} else {
  // email valid, do stuff
}

この正規表現は、多くの多くの問題について提供された電子メールをチェックします!

編集:

あなたは機能にいくつかのタイプミスがありました、ここではそれは完全に機能しています:そして動作中のフィドル!

$(document).ready(function(){

    // form submit
    $('#suform').on('submit', function(e){

        // prevent default behavior
        e.preventDefault();

        // reset errors counter
        var errorCount = 0;

        // clear error message
        $('span.errorMessage').text('');

        // run by each input field to check if they are filled
        $('input').each(function(){

            var $this = $(this);

            if($this.val() === ''){
                // take the input field from label
                var error = 'Please fill ' + $this.prev('label').text();
                $this.next('span').text(error);
                errorCount = errorCount + 1;   
            }
        });

        // no errors so far, let continue and validate the contents
        if(errorCount === 0){

            // get mobile number
            var mobileNumber = $('input[name=MNumber]').val();

            // get email address
            var email = $('input[name=Email]').val();

            // get password and password repeat
            var password= $('input[name="Password"]').val();
            var repass= $('input[name="RePassword"]').val();

            // regular expression to validate the email address
            var reg = /^((([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;

            // try to validate the email
            if (reg.test(email) == false) {
              $('input[name=Email]').next('span').text('Email address is invalid!');
              errorCount = errorCount + 1;
            } else {

                if(isNaN(parseFloat(mobileNumber )) && !isFinite(mobileNumber )) {
                    var error = 'Mobile number incorect.';
                    $('input[name=MNumber]').next('span').text(error);
                    errorCount = errorCount + 1;
                } else {
                    // ensrue the two passwords are the same
                    if(password!=repass){
                        var error2 = 'Password not matching';
                        $('input[name="RePassword"]').next('span').text(error2);
                        errorCount = errorCount + 1;  
                    }else{
                        $(this)[0].submit(); // submit form if no error
                    }
                }
            }
        }
    });
});
于 2012-05-12T19:26:32.217 に答える
1

この関数を使用できます:

function validateEmail(email) {
    var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
    if( !emailReg.test( email ) ) {
        return false;
    } else {
        return true;
    }
}
于 2012-05-12T19:24:08.227 に答える