我的姓名,电子邮件和复选框遵循相同的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;
}
},
答案 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)