【问题标题】:regular expression to validate date in dd/mm/yy format in jquery正则表达式在 jquery 中以 dd/mm/yy 格式验证日期
【发布时间】:2013-08-27 06:29:48
【问题描述】:

我正在使用此代码使用 jquery 验证我的文本字段,其中我已经验证了我的电子邮件姓名和联系方式,但不能做 dob,即出生日期。是否有任何正则表达式可以验证 dd/mm/yy 格式的日期。

$(function(){

var email = $('.email'),
    name = $('.name'),
    contact = $('.contact'),
    dob = $('.dob');



email.on('blur',function(){

    // Very simple validation
    if (!/^\S+@\S+\.\S+$/.test(email.val())){
        email.parent().addClass('error').removeClass('success');
    }
    else{
        email.parent().removeClass('error').addClass('success');
    }

});

name.on('blur',function(){

    // Very simple validation
    if (!/^\[+-]?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(name.val())){
                name.parent().removeClass('error').addClass('success');         
    }
    else{
        name.parent().addClass('error').removeClass('success');
    }

});

contact.on('blur',function(){

    // Very simple validation
    if (!/^[+-]?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(contact.val())){
        contact.parent().addClass('error').removeClass('success');
    }
    else{
        contact.parent().removeClass('error').addClass('success');
    }

});

dob.on('blur',function(){

    // Very simple validation
    if (!/^\d\d?-\d\d-\d\d.test(dob.val())){
        dob.parent().removeClass('error').addClass('success');
    }
    else{           
        dob.parent().addClass('error').removeClass('success');
    }

       });


    });

当我使用下面的代码时,它会正确检查 mm/dd/yyyy,但我想要 dd/mm/yyyy

  dob.on('blur',function(){

    // Very simple validation
    if (!/^[0,1]?\d{1}\/(([0-2]?\d{1})|([3][0,1]{1}))\/(([1]{1}[9]{1}[9]{1}\d{1})|([2-9]{1}\d{3}))$/.test(dob.val())){
        dob.parent().addClass('error').removeClass('success');

    }
    else{           
        dob.parent().removeClass('error').addClass('success');
    }

});

【问题讨论】:

    标签: jquery validation date


    【解决方案1】:

    这是为 dd/mm/yyyy

    ^\s*((31([-/ ])((0?[13578])|(1[02]))\3(\d\d)?\d\d)|((([012]?[1-9])|([123]0))([-/ ])((0?[13-9])|(1[0-2]))\12(\d\d)?\d\d)|(((2[0-8])|(1[0-9])|(0?[1-9]))([-/ ])0?2\22(\d\d)?\d\d)|(29([-/ ])0?2\25(((\d\d)?(([2468][048])|([13579][26])|(0[48])))|((([02468][048])|([13579][26]))00))))\s*$
    
    Matches 
    29-2-2000 | 31/12/9999 | 1 1 0000 | 29/02/0000 | 8/3/9841
    Non-Matches 
    29/2/1900 | 29/02/2001 | 31/04/2000 | 28/02-1934 | 1/13/1978
    

    取自这里

    http://regexlib.com/DisplayPatterns.aspx?cattabindex=4&categoryId=5&AspxAutoDetectCookieSupport=1

    【讨论】:

      【解决方案2】:

      这是我的代码,现在可以正常工作了。任何人都可以使用它

       $(function(){
      
      var email = $('.email'),
          name = $('.name'),
          contact = $('.contact'),
          dob = $('.dob'),
          doj = $('.doj');
      
      
      
      email.on('blur',function(){
      
          // Very simple validation
          if (!/^\S+@\S+\.\S+$/.test(email.val())){
              email.parent().addClass('error').removeClass('success');
          }
          else{
              email.parent().removeClass('error').addClass('success');
          }
      
      });
      
      name.on('blur',function(){
      
          // Very simple validation
          if (!/^[a-zA-Z\s]+$/.test(name.val())){
              name.parent().addClass('error').removeClass('success');         
          }
          else{
              name.parent().removeClass('error').addClass('success');
          }
      
      });
      
      contact.on('blur',function(){
      
          // Very simple validation
          if (!/^[+-]?\d+(\.\d+)?([eE][+-]?\d+)?[0,10]$/.test(contact.val())){
              contact.parent().addClass('error').removeClass('success');
          }
          else{
              contact.parent().removeClass('error').addClass('success');
          }
      
      });
      
      dob.on('blur',function(){
      
          // Very simple validation
          if (!/^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((1[6-9]|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/.test(dob.val())){
              dob.parent().addClass('error').removeClass('success');
      
          }
          else{           
              dob.parent().removeClass('error').addClass('success');
          }
      
      });
      
      doj.on('blur',function(){
      
          // Very simple validation
          if (!/^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((1[6-9]|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/.test(doj.val())){
              doj.parent().addClass('error').removeClass('success');
      
          }
          else{           
              doj.parent().removeClass('error').addClass('success');
          }
      
          });
      
      
         });
      
      the code for html file is
      
      
          <form>
         <div class="group_field">
       <div class="text">E-mail :</div>
       <div class="field"><input name="" type="text" class="email text_field" /></div>
       <div class="validation"></div>
       </div>
      
      <div class="group_field">
      <div class="text">Contact :</div>
      <div class="field"><input name="" type="text" class="contact text_field"  /></div>
      <div class="validation"></div>
      </div>
      
      <div class="group_field">
      <div class="text">Doj :</div>
      <div class="field"><input name="" type="text" class="doj text_field" /></div>
      <div class="validation"><!--<img src="images/tick.png"  />--></div>
      </div>
      
      <div class="group_field">
      <div class="text">dob :</div>
      <div class="field"><input name="" type="text" class="dob text_field" /></div>
      <div class="validation"><!--<img src="images/tick.png"  />--></div>
      </div>
      
      <div class="group_field">
      <div class="text">name  :</div>
      <div class="field"><input name="" type="text" class="name text_field" /></div>
      <div class="validation"><!--<img src="images/tick.png"  />--></div>
      </div>
       </form>
      

      【讨论】:

        【解决方案3】:

        试试这个

        dob.on('blur',function(){
        // regular expression to match required date format 
        var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
        
        if (dob.value != '' && !dob.value.match(re)){
            alert("Invalid date format: " + dob.value);
            dob.parent().addClass('error').removeClass('success');
        }
        else{           
            dob.parent().removeClass('error').addClass('success');
        }
        });
        

        这是一个很好的实现示例 http://www.the-art-of-web.com/javascript/validate-date/#.UhxM8D_hN8w

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-21
          • 1970-01-01
          • 2013-07-04
          • 1970-01-01
          • 2020-04-09
          • 2023-04-07
          相关资源
          最近更新 更多