如何在javascript验证中为电子邮件添加规则条件

时间:2015-10-12 23:02:51

标签: javascript php validation email

我的表单中有一个电子邮件输入字段。验证通过使用javascript完成。电子邮件验证没有问题,它可以正常工作。但我想检查电子邮件的附加条件,如果有人没有电子邮件,他/她可以在字段中键入“否”。这是“否”或只允许有效的电子邮件。请帮助我。我目前的电子邮件规则是

                    My_email: {  
                    required: true,
                    email:true,                                                       
                },

2 个答案:

答案 0 :(得分:0)

对于javascript验证,如果使用jquery,请查看jquery validate

http://jqueryvalidation.org/documentation/

简单的例子

创建规则

 var loginValidationConfig = {                    
    wrapper: "div",
    rules: {
            password: {
                required: true,
            },
            email: {
                required: true,
                email: true
            }
        },
        messages: {
            password: {
                required: "<i class='sprite-attentionw_error_icon'></i>The username or password you entered is incorrect.<br />Please try again.",                    
            },
            email: {
                required: "<i class='sprite-attentionw_error_icon'></i>The username or password you entered is incorrect.<br />Please try again.",                    
                email: "<i class='sprite-attentionw_error_icon'></i>The username or password you entered is incorrect.<br />Please try again."
            }
        }
}     

然后在你做的表格上

 $(this).validate(loginValidationConfig);

这将打印字段旁边的验证 无论如何,您至少需要阅读部分文档

答案 1 :(得分:0)

如果验证电子邮件地址的功能是对Sudakatux的回答中给出的答案

var checkMail = function IsEmail(email) { 
  var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]2,4})+$+no+NO/;
  return regex.test(email);
}

它让我想知道它可以用来验证电子邮件地址(例如:结尾&#34;博物馆&#34;其中的字母多于你假设的四个字母)但这可能是问题当然,C&amp; P,以及评论缺乏形成能力,所以我认为它是有效的。

正如已经提到的:除了一些基本的检查之外,你不会验证客户端的电子邮件地址,例如:它有一个@ -sign和一些点,然后通过发送 电子邮件完成剩下的工作(不只是一个测试邮件!),看看它是否反弹。有一些经过充分测试的正则表达式,可以在网络的某个地方找到这种类型的支票,但也可以在这里找到。

采用最简单的方法

var checkMail = function (email) { 
  var regex = /^.+@[^@]+?\.[a-zA-Z]+$/;
  return regex.test(email);
}

检查

var email1 = "a.s@g.a"; // correct but does not exist
var email2 = "a@g";
var email3 = "ag.de";
var email4 = "ag.@.d@e";
var email5 = "a@g@d.de";

console.log("1 " + checkMail(email1));
console.log("2 " + checkMail(email2));
console.log("3 " + checkMail(email3));
console.log("4 " + checkMail(email4));
console.log("5 " + checkMail(email5));

但那不是你想要的,你想要检查多个值并根据该值做一些不同的事情。您可以使用正则表达式检查是否存在任何值,但您不知道哪一个值。你需要两个正则表达式。

假设你想要&#34; NO&#34; (大写&#34; N&#34;大写&#34; O&#34;)

var checkMail = function (email) { 
  var regexEmail = /^.+@[^@]+?\.[a-zA-Z]+$/;
  var regexNO = /^NO$/;
  if(!regexEmail.test(email)){
    if(!regexNO.test(email)){
      return -1; // nothing in it
    }
    return 1; // Intentionally no email address given
  }
  return 2; // something vaguely resembling an email given
}

您可以在以下内容中使用它:

var valueEmailField = checkMail(email)
if(valueEmailField > 0){
  if(valueEmailField == 1){
    // User said "NO", act accordingly
  }
  // user gave something email-like, act accordingly
}
else {
  // email field empty, act accordingly
}

从用户的角度来看,最好使用复选框而不是文本进入。复选框不容易出错。是的,ti可以输错两个字母的单词。

例如选择加入:

[]我想通过电子邮件发送您的答案,请使用以下地址:     | ___________________________ |电子邮件地址

嗯,也许比那更优雅; - )

首先测试复选框,如果选中该复选框,请测试该条目的有效性。