【问题标题】:Want to validate my email and telephone想要验证我的电子邮件和电话
【发布时间】:2013-08-09 11:27:22
【问题描述】:

我需要为联系表验证我的电子邮件和电话。那里有用于电子邮件的代码,但它不正确,不是正确的方法,没有任何帮助! 我知道它需要它说:

if(email.length == 0 || email.indexOf('@') == '-1')

但我现在知道如何做到这一点,我对 php 非常陌生,所以对我来说放轻松:)

var error = false;
var name = $('#name').val();
var email = $('#email').val();
var subject = $('#subject').val();
var message = $('#message').val();
var tel = $('#tel').val();

    // Form field validation
if(name.length == 0){
    var error = true;
    $('#name_error').fadeIn(500);
}else{
    $('#name_error').fadeOut(500);
}
if(tel.length == 0){
    var error = true;
    $('#tel_error').fadeIn(500);
}else{
    $('#tel_error').fadeOut(500);
}
if(email.length == 0 || email.indexOf('@') == '-1'){ **this is not the right way! help** 
    var error = true;
    $('#email_error').fadeIn(500);
}else{
    $('#email_error').fadeOut(500);
}
if(subject.length == 0){
    var error = true;
    $('#subject_error').fadeIn(500);
}else{
    $('#subject_error').fadeOut(500);
}
if(message.length == 0){
    var error = true;
    $('#message_error').fadeIn(500);
}else{
    $('#message_error').fadeOut(500);
}

if(tel.length == 0){
    var error = true;
    $('#tel_error').fadeIn(500);
}else{
    $('#tel_error').fadeOut(500);
}

【问题讨论】:

  • 为什么标记为php?这看起来像 js / jQuery 对我来说......
  • 从 PHP 重新标记,因为没有任何相关。新标签更合适
  • 感谢您重新标记。您是否考虑过使用正则表达式进行模式验证而不是那些基本测试?

标签: javascript jquery validation email phone-number


【解决方案1】:

电子邮件正则表达式:http://www.regexlib.com/Search.aspx?k=email

电话正则表达式:http://www.regexlib.com/Search.aspx?k=telephone

使用正则表达式和 jquery 验证字段:https://stackoverflow.com/a/709358/2646455

所以你可以这样做:

$.validator.addMethod(
        "regex",
        function(value, element, regexp) {
            var re = new RegExp(regexp);
            return this.optional(element) || re.test(value);
        },
        "Please check your input."
);

$('#email').rules("add", { regex: "^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$" });

您可以效仿其他字段,应用正则表达式(例如,用于电话)或其他基本的 jquery 验证。

附言您只需调用一次$.validator.addMethod,即可使用正则表达式验证选项。然后,为要应用于每个字段的每个验证规则调用最后一行一次(您可以将多个验证规则应用于单个字段)。

【讨论】:

    【解决方案2】:
    var atposition = email.indexOf("@");    //email = $('#email').val();
    
    var dotposition = email.lastIndexOf(".");
    if (atposition<1 || dotposition<atposition+2 || dotposition+2>=email.length)
      {
      //Invalid Email Code      
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-07
      • 2020-04-05
      • 2015-03-15
      • 2018-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多