为什么我的日期验证不起作用?

时间:2014-05-14 20:30:29

标签: javascript jquery regex

我的姓名,电子邮件和复选框遵循相同的js模式,验证效果很好,但生日不会验证。我首先剥离空白区域,以便它们不能留空,然后使用正则表达式来确定它是否有效。我的正则表达式错了吗?

validate: function (attrs, options) 
{
    var errors = [],
    pattern = '/^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d+$/',
    isValidBirthday = attrs.birthday && attrs.birthday.replace(/\s/g, '') && attrs.birthday === ('pattern');

    if (!isValidBirthday) 
    {
        errors.push(
        {
            "birthday": "Must have a valid birth date."
        });
    }

    if (errors.length) 
    {
        return errors;
    }
},

1 个答案:

答案 0 :(得分:1)

您正在使用正则表达式错误。请尝试以下方法,注意缺少 ''围绕正则表达式,以及在模式上使用.test方法。

var errors = [],
    pattern = /^(0[1-9]|1[0-2])[-/.](0[1-9]|[12][0-9]|3[01])[-/.](19|20)\d\d$/,
    isValidBirthday,
    cleanedBirthday;

cleanedBirthday = attrs.birthday && attrs.birthday.replace(/\s/g, '');
isValidBirthday = pattern.test(cleanedBirthday)