如何验证电子邮件和备用电子邮件


How to validate email and alterative email?

如何在jquery中验证电子邮件并在同一时间重复电子邮件?

<label class="labeln">Email Address: </label> 
<input type="email" required="" id="email" name="email" class="input1"> 
<label class="labeln">Repeat Email Address: </label> 
<input type="email" required="" id="remail" name="remail" class="input1">

HTML

<label class="labeln">Email Address: </label> 
<input class="vEmail" type="email" required="" id="email" name="email"> 
<label class="labeln">Repeat Email Address: </label> 
<input class="vEmail" type="email" required="" id="remail" name="remail">
<script src="/js/jquery.validate.min.js'"></script>
<script src="/js/additional-methods.min.js"></script>

脚本

$( ".vEmail" ).change(function() {
    //validate confirm email using jquery validate
    $('#myform').validate({
        rules: {
            email: 'required',
            remail: {
                equalTo: '#email'
            }
        },
        messages: {
            email: {
                required: "Please enter email"
            },
            remail: {
                equalTo: "Confirm email is not match"
            }
        }
    });
}

你只需要选择 input1 类,因为它们具有相同的类
.HTML

<label class="labeln">Email Address: </label> 
<input type="email" required="" id="email" name="email" class="input1"> 
<label class="labeln">Repeat Email Address: </label> 
<input type="email" required="" id="remail" name="remail" class="input1">

爪哇语

$('.input1').on('change',function(){
  //Your validation here
  //But use $(this).val() to get the value of the email
   if( !isValidEmailAddress( $(this).val() ) ) { 
    /* do stuff here */ 
   }
});

查看此函数 aSeptik

function isValidEmailAddress(emailAddress) {
    var pattern = /^([a-z'd!#$%&'*+'-'/=?^_`{|}~'u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF]+('.[a-z'd!#$%&'*+'-'/=?^_`{|}~'u00A0-'uD7FF'uF900-'uFDCF'uFDF0-'uFFEF]+)*|"((([ 't]*'r'n)?[ 't]+)?(['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]))*(([ 't]*'r'n)?[ 't]+)?")@(([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;
    return pattern.test(emailAddress);
};

另请参阅此函数

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);
}

我建议使用Validator - https://github.com/chriso/validator.js,语法很简单:

validator.isEmail('foo@bar.com');

这是一个我广泛使用(并贡献)的JavaScript库,包括Gmail和Yahoo等常见免费邮件提供商的自定义逻辑。这些提供商有自己的规则,验证者也考虑了这些东西。

一个简单的正则表达式(正如其他答案所建议的那样)是可以的,但电子邮件语法实际上非常复杂,所以最好只使用更复杂的东西。

如果您想

确保电子邮件地址真实并且可以接受传入的电子邮件,您还可以使用像 Kickbox 这样的电子邮件验证 API(免责声明 - 我在那里工作,我们很棒)。