docs: function (chrs, buffer, pos, strict, opts) {
                          var frontValue = buffer.join('').substr(5, 3);
                          if (frontValue.indexOf(opts.placeholder[5]) != -1) frontValue = "01" + opts.separator;
                          var isValid = opts.regex.val2(opts.separator).test(frontValue + chrs);
                          if (!strict && !isValid) {
                              if (chrs.charAt(1) == opts.separator || "-./".indexOf(chrs.charAt(1)) != -1) {
                                  isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs.charAt(0));
                                  if (isValid) {
                                      buffer[pos - 1] = "0";
                                      return { "pos": pos, "c": chrs.charAt(0) };
                                  }
                              }
                          }
  
                          //check leap yeap
                          if (isValid) {
                              var dayMonthValue = buffer.join('').substr(4, 4) + chrs;
                              if (dayMonthValue != opts.leapday)
                                  return true;
                              else {
                                  var year = parseInt(buffer.join('').substr(0, 4), 10);  //detect leap year
                                  if (year % 4 === 0)
                                      if (year % 100 === 0)
                                          if (year % 400 === 0)
                                              return true;
                                          else return false;
                                      else return true;
                                  else return false;
                              }
                          }
  
                          return isValid;
                      }