【问题标题】:Regex in jQuery.Validator for yy/mm/dd [duplicate]yyyy/mm/dd 的 jQuery.Validation 中的正则表达式 [重复]
【发布时间】:2020-01-06 16:16:41
【问题描述】:

我正在尝试将一些自定义验证集成到我的特定字段的表单中。

我有两个,但我专注于 yy/mm/dd

为此,我能够找到这个表达式:

^\d{2}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$

我添加到这段 jquery 中,我正在从加拿大邮政编码自定义验证中重复使用该代码

//date format yy/mm/dd
    jQuery.validator.addMethod("yearMonthDay", function (yymmdd, element) {
        return this.optional(element) ||
            yymmdd.match(/^\d{2}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$/);
    }, "Please use the correct format yy/mm/dd.");

这样做的方式是,当有人输入时,我可以通过字段看到错误,但我可以提交任何内容,所以这不起作用。

$("#form").validate({
    rules: {
        Birthdate: {
            required: true,
            yearMonthDay: true
        }
    }
});

谁能帮帮我?告诉我哪里出错了?

【问题讨论】:

  • 您需要提供有关其余代码/表单的更多信息。如果正则表达式正常工作但表单未提交,则听起来问题与您的问题所述的正则表达式无关。
  • 表单确实提交了,它似乎忽略了这一点,我可以在输入字段中输入任何内容,并看到消息“请使用正确的格式 yy/mm/dd。”并提交。
  • \-改成\/
  • 显示表单的 HTML 标记,以便我们知道您没有犯任何错误。否则,您的代码绝对不会像您声称的那样让我 “提交任何东西”jsfiddle.net/n1e95gbz 换句话说,您发布的代码仅显示您的正则表达式存在问题(yy-mm-dd 而不是yy/mm/dd),因为它工作正常,否则验证不允许我提交 "anything" i>.

标签: jquery regex jquery-validate


【解决方案1】:

你可以尝试改变吗:

/^\d{2}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$/

/^\d{2}\/(0[1-9]|1[012])\/(0[1-9]|[12][0-9]|3[01])$/

您正在使用的正则表达式正在寻找 yy-mm-dd。 我提供的应该是寻找 yy/mm/dd

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 2017-07-10
    • 2011-07-11
    • 1970-01-01
    相关资源
    最近更新 更多