有人能帮助我这个蠢蛋理解为什么我的简单正则表达式没有像我期望/想要的那样工作吗?
我想匹配一个格式为MM/DD/YYYY的日期,恰好有2位和4位数字,例如01/16/1955。我的代码可以实现这一点,但它同样也匹配2+位和4+位数字,所以类似于011/16/1955或01/16/19555(多了1位数字)也会通过我的验证。
//validate date of birth
var dob_label = $date_of_birth.find('label').text().slice(0, -1),
dob_mm = $dob_mm.val(),
dob_dd = $dob_dd.val(),
dob_yyyy = $dob_yyyy.val(),
regex_two_digit = /^\d{2}$/,
regex_four_digit = /^\d{4}$/;
if ( (regex_two_digit.test(dob_mm)) && (regex_two_digit.test(dob_dd)) && (regex_four_digit.test(dob_yyyy)) ) {
//a button is enabled here
} else {
//a validation error is thrown here and the button is disabled
}