我当前正在使用javascript验证来验证用户输入的有效日期,但是,我当前的正则表达式模式无法验证用户输入的日期必须小于03/19。相反,它允许01/19以及02/19等。
我相信还有其他方法可以在javascript中进行此验证,但是我想知道此正则表达式是否有方法。
当前javascript:
var errdiv = $(".error");
$("#form").validate({
rules: {
cardmm: {
required: true,
minlength: 2,
maxlength: 2,
pattern: "^(1[0-2]|[0-9]|)$"
},
cardyy: {
required: true,
minlength: 2,
maxlength: 2,
pattern: "^(2[0-8]|19|)$"
},
},
messages: {
cardmm: {
required: "Please enter valid details.",
minlength: "Please enter valid details.",
maxlength: "Please enter valid details.",
max: "Please enter valid details.",
pattern: "Please enter valid details."
},
cardyy: {
required: "Please enter valid details.",
minlength: "Please enter valid details.",
maxlength: "Please enter valid details.",
pattern: "Please enter valid details."
},
},
errorPlacement: function(error, element, m) {
errdiv.css({"display": "block"});
errdiv.empty();
errdiv.text(error[0].innerHTML);
},
success: function(error) {
error.removeClass("error"); // <- no, no, no!!
errdiv.css({"display": "none"});
}
});
答案 0 :(得分:1)
您可以将问题分为两部分:年份大于2019的任何日期的正则表达式,以及要允许2019年的特定月份的正则表达式,然后将它们合并为最终的正则表达式。
答案 1 :(得分:0)
您总是可以调用一个结合了mm和yy字段的小脚本 验证的形式。
使用正斜杠加入字段。
验证正则表达式为:
^(?:(?:0?[3-9]|1[0-2])/19|(?:0?[1-9]|1[0-2])/2[0-8])$
扩展
^
(?:
(?: 0? [3-9] | 1 [0-2] )
/19
|
(?: 0? [1-9] | 1 [0-2] )
/2 [0-8]
)
$
否则,它确实无法单独验证。