解决方案 »

  1.   


    var reg = /^\d{4}-(0[1-9]|1[012])(-\d{2})*$/;
      

  2.   

    danica7773   不好使啊· 就是yyyy-mm 的验证不出来!你帮看下我这两个
    /^(\d{4}|\d{2})-( (0?[1-9]) | (1[0-2]) )$/    这个只能验证-01月到09月/^(\d{4}|\d{2})-( (1[0-2] ) | (0?[1-9]) )$/ 这个只能验证10到12月    貌似把两个整合下就好了   后面的符号 | 没起作用 
      

  3.   


     <INPUT TYPE="text" NAME="" value="2014-01" onchange="fun(this.value)">
    function fun(str){
    var reg = /^\d{4}-((0[1-9])|(1[0-2]))$/;
    if(!reg.test(str)) alert("错误");

      

  4.   

    var reg = /^(\d{4}|\d{2})-(0?[1-9]|1[012])$/
      

  5.   

    换个思路呗
        function isValidDate(dateString) {
          // First check for the pattern
          if(!/^\d{4}\/\d{2}\/\d{2}$/.test(dateString))  //YYYY/MM/DD
            return false;      // Parse the date parts to integers
          var parts = dateString.split("/");
          var day = parseInt(parts[2], 10);
          var month = parseInt(parts[1], 10);
          var year = parseInt(parts[0], 10);      // Check the ranges of month and year
          if(year < 1000 || year > 3000 || month == 0 || month > 12)
            return false;      var monthLength = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];      // Adjust for leap years
          if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0))
            monthLength[1] = 29;      // Check the range of the day
          return day > 0 && day <= monthLength[month - 1];
          //return new Date(input) instanceof Date
        }
    我这个是测 YYYY/MM/DD的,
    你要测的话,把/的地方改成-
    然后,传入参数不管是啥,后面加上个 "-01",模拟成1号传进去测呗其实肯定有方法,不过这个更通用,往上凑呗