2013-06-28 46 views
0

Parsley extend .js中有一個方法用於錯誤檢查不正確的日期。 例如:M/D/YY如何更改parsand中的americandate extend.js只檢查月份和年份

我想對此進行修改,僅檢查月份和年份。 如:MM/YYYY

americandate: function (val, elem, self) { 
     if(!/^([01]?[0-9])[\.\/-]([0-3]?[0-9])[\.\/-]([0-9]{4}|[0-9]{2})$/.test(val)) { 
      return false; 
     } 
     var parts = val.split(/[.\/-]+/); 
     var day = parseInt(parts[1], 10); 
     var month = parseInt(parts[0], 10); 
     var year = parseInt(parts[2], 10); 
     if(year == 0 || month == 0 || month > 12) { 
      return false; 
     } 
     var monthLength = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; 
     if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) { 
      monthLength[1] = 29; 
     } 
     return day > 0 && day <= monthLength[month - 1]; 
     } 

回答

1

的你的功能的複雜設計強制執行一個月的天數正確。

對於所有日期(在近期的歷史中),在月份字段中需要1-12個字符,在年份字段中需要2或4個數字。爲什麼不寫一個簡單的正則表達式來驗證日期是由正確的字符組成的。

\b(1[12]|0?[1-9])[.\/-]([0-9]{2}?[0-9]{2})\b

enter image description here