繁体   English   中英

Javascript验证何时应接受

[英]Javascript validation accepting when it shouldn't

我有一个检查我的电子邮件和日期字段的脚本。 他们仍然会接受不好的约会。 我究竟做错了什么? 我是正则表达式的新手。

<script type="text/javascript">
$('#btn-submit').click(function() {
    $('.error').hide();

    var hasError = false;
    var payError = false;
    var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
    var ccdate = /^((0[1-9])|(1[0-2]))\/((2013)|(20[1-4][0-9]))$/;

//验证电子邮件

var emailaddressVal = $("#mail").val();
if(emailaddressVal == '') {
  $("#errors").after('<span class="error">Please enter your email address.</span>');
  hasError = true;
}
else if(!emailReg.test(emailaddressVal)) {
  $("#errors").after('<span class="error">Enter a valid email address.</span>');
  hasError = true;
}

//这会检查是否选择了下拉选项以显示帐单字段。

if ( ($("#selection").val() == '') ) {
    $("#errors").after('<span class="error">Please select an option.</span>');
    hasError = true;
 }

if ( ($("#selection").val() == 'charge') ) {
    //validate cctype
    if ( ($("#cctype").val() == '') ) {
      $("#errors").after('<span class="error">Please select a credit card type.</span>');
      payError = true;
    }       

//验证ccdate

    var ccdate = $("#ccdate").val();
    if ( ccdate == '') {
      $("#errors").after('<span class="error">Please enter a date</span>');
      payError = true;
    }
    else if(!date.test(ccdate)) {
        $("#errors").after('<span class="error">Enter a valid date.</span>');
        payError = true;
      }

    if(payError == true) { return false; }
}

if(hasError == true) { return false; }

});

我的表单有几个输入字段。 我有一个下拉菜单,它将显示带有所有计费字段的计费表。 我试图让它只接受MM / YYYY作为有效的信用卡日期。 这似乎接受任何字符串。

谢谢

var ccdate = $("#ccdate").val();

在这里,您将从此处覆盖正则表达式:

var ccdate = /^((0[1-9])|(1[0-2]))\/((2013)|(20[1-4][0-9]))$/;

将正则表达式的名称更改为date 另外, 201320[1-4][0-9]不需要分组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM