2016-08-04 4 views
-2

Я пытаюсь отфильтровать результаты даты, но я думаю, что у меня может быть неправильное выражение.Javascript regexp не соответствует дате корректно

if ((strSearchInx == 6) || (strSearchInx == 7)) { 
     var regDate = new RegExp("/^\d{1,2}\/\d{1,2}\/\d{4}$/"); 
     strSearchField = strSearchField.trim(); 
     //alert(strSearchField); 
     if (regDate.test(strSearchField) == false) { 
      alert("Date does not match mm/dd/yyyy format. Please re-enter"); 
      document.getElementById('searchfield').focus(); 
      return false; 
     } 

    } 

Я проверил его от 8/3/2016, и не похоже, чтобы какой-либо ответ через: Есть/^ \ d {1,2}/\ d {1,2}/\ d {4} $/правильное регулярное выражение?

Спасибо.

+0

, похоже, работает https://regex101.com/r/uN2sH3/1. вы уверены, что вход правильный? – Pabs123

+1

Используйте регулярный синтаксис регулярного выражения '/^\ d {1,2} \/\ d {1,2} \/\ d {4} $ /' ИЛИ 'новый RegExp ("^\\ d {1,2} \/\\ d {1,2} \/\\ d {4} $ ")' – Tushar

+0

Вы проверяете это регулярное выражение на точную строку «8/3/2016» или на строку, содержащую эту дату? –

ответ

1

Вы не используете объект Regexp правильно. Вы должны сделать:

var regDate = new RegExp("^\\d{1,2}\/\\d{1,2}\/\\d{4}$"); 

Посмотрите, как \d экранируются, и вы не должны начинать и заканчивать регулярному_выражению с /, он используется для начала и конца буквального регулярного выражения, а не регулярное выражения, завернутое в объекте.

+0

Работал! Благодарю. –

+0

Прохладный! Пожалуйста. –

Смежные вопросы