Регулярное выражение JavaScript, соответствующее только X цифрам - PullRequest
11 голосов
/ 30 января 2011

Может ли кто-нибудь помочь моему мозгу гороха понять, почему мое простое регулярное выражение не работает так, как я ожидаю / хочу этого.

Я хочу сопоставить формат даты ММ / ДД / ГГГГ с точно 2 и 4 цифрами, что-то вроде 16.01.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
}

Ответы [ 2 ]

24 голосов
/ 30 января 2011

необходимо указать начало и конец строки

/^\d{4}$/
1 голос
/ 13 апреля 2011

попробуйте ^\d{1,2}\/\d{1,2}\/\d{4}$

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...