jQuery.Validator 中的正则表达式用于匹配 yy/mm/dd 格式。

huangapple go评论79阅读模式
英文:

Regex in jQuery.Validator for yy/mm/dd

问题

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

我有两个字段,但我正在关注yy/mm/dd。

为此,我能够找到以下表达式:

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

我将其添加到以下jQuery代码中,我从一个加拿大邮政编码的自定义验证中复用了这段代码,这个验证是有效的。

//日期格式 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])$/);
}, "请使用正确的格式 yy/mm/dd。");

这个验证方式可以在用户输入内容时看到字段旁边的错误提示,但我可以提交任何内容,所以这不起作用。

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

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

英文:

I'm trying to integrate some custom validation into my form for specific fields.

I have two, but I'm focusing on yy/mm/dd

for this I was able to find this expression:

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

Which I added into this piece of jquery, which I am reusing from a Canadian postal code custom validation which works

//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.");

This works in the way that I can see the error by the field when someone types in it, but I'm able to submit anything, so this isn't working.

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

Can anyone be of assistance to me? Show me where I've gone wrong?

答案1

得分: 2

请尝试更改:

/^\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。

英文:

Could you try changing:

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

to

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

The regex you are using is looking for yy-mm-dd.
The one I supplied should be looking for yy/mm/dd

huangapple
  • 本文由 发表于 2020年1月7日 00:16:41
  • 转载请务必保留本文链接:https://go.coder-hub.com/59615451.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定