2010-07-29 5 views
0

Кто-нибудь знает, как я могу сделать форвард-лайв и формат: dd/mm/yyyy обязательным в этом регулярном выражении?Справка по регулярному выражению Javascript

// Checks a string to see if it in a valid date format 
// of (D)D/(M)M/(YY)YY and returns true/false 
function isValidDate(s) { 
    // format D(D)/M(M)/(YY)YY 
    var dateFormat = /^\d{1,4}[\.|\/|-]\d{1,2}[\.|\/|-]\d{1,4}$/; 
    if (dateFormat.test(s)) { 
     // remove any leading zeros from date values 
     s = s.replace(/0*(\d*)/gi,"$1"); 
     var dateArray = s.split(/[\.|\/|-]/); 
       // correct month value 
     dateArray[1] = dateArray[1]-1; 
     // correct year value 
     if (dateArray[2].length<4) { 
      // correct year value 
      dateArray[2] = (parseInt(dateArray[2]) < 50) ? 2000 + parseInt(dateArray[2]) : 1900 + parseInt(dateArray[2]); 
     } 
     var testDate = new Date(dateArray[2], dateArray[1], dateArray[0]); 
     if (testDate.getDate()!=dateArray[0] || testDate.getMonth()!=dateArray[1] || testDate.getFullYear()!=dateArray[2]) { 
      return false; 
     } else { 
      return true; 
     } 
    } else { 
     return false; 
    } 
} 
+0

Отъезд: http://regexlib.com/Search.aspx?k=date –

ответ

1

обязательного дд/мм/гггг попробовать:

var dateFormat = /^\d{2}\/\d{2}\/\d{4}$/; 

Я внимательно не смотреть на остальной части этой функции, но я думаю, что это то, что вы собираетесь.

+0

* хехе * .. одно и то же самое время :) –

0

это будет делать это я думаю ..

/^\d{2}\/\d{2}\/\d{4}$/ 

вынужден 2 цифры дня, 2 цифры месяца, 4 цифры года и/как разделитель ..

или

/^[0-3][0-9]\/[0-1][0-9]\/\d{4}$/ 

в обеспечить соблюдение небольших ограничений ..
день: 00-39
месяц: 00-19

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