Greasy Fork is available in English.

Bangumi 番组计划 详情页 自动获取详情页动漫中文/日文名/播放时间/新番完结日期复制 2020年06月16日编写代码

Bangumi 番组计划 详情页 自动获取详情页动漫中文/日文名/发售播放复制

// ==UserScript==/
// @name         Bangumi 番组计划 详情页 自动获取详情页动漫中文/日文名/播放时间/新番完结日期复制 2020年06月16日编写代码
// @version      0.0.3
// @description  Bangumi 番组计划 详情页 自动获取详情页动漫中文/日文名/发售播放复制
// @author       waecy
// @namespac     Bangumi 番组计划 详情页 自动获取详情页动漫中文/日文名/播放时间复制
// @require      https://cdn.staticfile.org/jquery/2.1.4/jquery.min.js
// @include      *://bangumi.tv/subject/*
// @include      *://bgm.tv/subject/*
// @include      *://chii.in/subject/*
// @icon         https://lain.bgm.tv/pic/icon/s/000/00/13/1391.jpg?r=1357822756
// @icon64       https://lain.bgm.tv/pic/icon/s/000/00/13/1391.jpg?r=1357822756
// @grant        GM_xmlhttpRequest
// @grant        GM_setValue
// @run-at       document-start
// @license      MIT License
// @namespace https://greasyfork.org/users/28972
// ==/UserScript==
/*
  2020年6月16日2:27:41
  2020年6月16日4:19:26
  2020年7月4日0:35:53更改去除两边空格
  2020年8月20日19:05:21添加去重函数,判断别名是否有和中文名同名,有的话不拼接字符,防止复制重复
  2020年8月20日19:52:13添加复制新番更新时间
 */
$(function() {

      // 创建对象,存放数组
      var listObj = {
          zhName: [],
          jpZhName: [],
          sum: [],
          data: []
      };

  // 封装复制函数
   var  copyFn = function (ele, copyText) {
      // 更改input内容
      $(ele).val(copyText);

      // 全选输入框内容
      $(ele).select();

      // 执行浏览器自带的复制
      document.execCommand("Copy");

      // 清空输入框内容
      $(ele).val('');
    }

     function trim(str) { //删除左右两端的空格
           
         return str.replace(/(^\s*)|(\s*$)/g, "");  
     }  
     function ltrim(str) { //删除左边的空格
           
         return str.replace(/(^\s*)/g, "");  
     }  
     function rtrim(str) { //删除右边的空格
           
         return str.replace(/(\s*$)/g, "");  
     }
        // 循环遍历词条
      $("#infobox li span").each(function(index, ele) {

          // 循环遍历标题
          var selfText = $(this).html();

          // 添加名称
          var addName = '';

          // 主要标题中文
          if (selfText == "中文名: ") {
              // 获取番名
              addName = $(this).parent().text();

              // 截取名称
              addName = addName.substr(4).replace(/(^\s*)|(\s*$)/g, "").replace(/\)/g,"]").replace(/\(/g,"[");

              // 添加数组
              listObj['zhName'].push(addName);

          } else if (selfText == '话数: ' || selfText == '集数: ') {
              // 获取话数
              addName = $(this).parent().text();

              // 截取话数
              addName = addName.substr(3).replace(/(^\s*)|(\s*$)/g, "").replace(/\)/g,"]").replace(/\(/g,"[");

              // 添加数组
              listObj['sum'].push(addName);

          } else if (selfText == '别名: ') {
              // 获取别名
              addName = $(this).parent().text();

              // 截取别名
              addName = addName.substr(3).replace(/(^\s*)|(\s*$)/g, "").replace(/\)/g,"]").replace(/\(/g,"[");

              // 添加数组
              listObj['jpZhName'].push(addName);
          } else if (selfText == '发售日期: ' ||
                    selfText == '放送开始: ' ||
                    selfText == '其他: ' ||
                    selfText == '上映年度: ' ||
                    selfText == '发售日: ' ||
                    selfText == '开始: ' ||
                    selfText == '放送星期: '  ||
                    selfText == '发行日期: ' ) {

              // 获取发售日期
              addName = $(this).parent().text();

              // 判断是否包含()和号
              if (addName.indexOf('(') != -1 &&
                  addName.indexOf(')') != -1 &&
                addName.indexOf('号') != -1) {
                // 截取发售日期,并截取日期
                addName = addName.substr(4).replace(/\s+/g, "");
              } else if (addName.indexOf('年') != -1 && addName.indexOf('号') != -1) {
                addName = addName.substr(4).replace(/\s+/g, "");
              } else {
                // 新增数组,判断"发售日: 2018-09-14"格式
                var newAry = $(this).parent().text().split('-');

                // 如果是2018-09-14格式的话
                if (newAry.length - 1 == 2) {

                    // 自定义格式
                    // addName = newAry[0].substr(newAry[0].length - 4) + '年' + newAry[1] + '月' + newAry[2] + '日';
                    addName = $(this).parent().text().substr("发售日: ".length);
                } else {
                   // 截取发售日期,并截取日期
                    addName = $(this).parent().html().split('</span>')[1]
                }

                // 自定义格式
                addName = getListDate(addName);
              }


              // 判断是否不为空
              if (addName) {
                // 添加发售日期
                listObj['data'].push(addName);
              }
          }

          console.log(
            listObj
          );
      })


     // 一键复制
     $('.subjectNav ul').append('<button class="toCopy">全部复制</botton>');
     // $('.nameSingle').after('<div style="width: 80%;position:relative;margin: 0 auto;"><button class="toCopy">全部复制</botton></div>');

// 设置样式
$('.toCopy').css({
   /* "position":"absolute",
    "top":"0",
    "left":"0",
     "bottom":"0",
     "right":"0",
     "margin":"2px 2.4rem auto",*/
    "margin-left": "10px",
    "color": "#fff",
    "line-height": "1.499",
    "position": "relative",
    "display": "inline-block",
    "font-weight": "400",
    "white-space": "nowrap",
    "text-align": "center",
    "background-image": "none",
    "border": "1px solid transparent",
    "-webkit-box-shadow": "0 2px 0 rgba(0, 0, 0, 0.015)",
    "box-shadow": "0 2px 0 rgba(0, 0, 0, 0.015)",
    "cursor": "pointer",
    "-webkit-transition": "all .3s cubic-bezier(.645, .045, .355, 1)",
    "transition": "all .3s cubic-bezier(.645, .045, .355, 1)",
    "-webkit-user-select": "none",
    "-moz-user-select": "none",
    "-ms-user-select": "none",
    "user-select": "none",
    "-ms-touch-action": "manipulation",
    "touch-action": "manipulation",
    "height": "32px",
    "padding": "0 15px",
    "font-size": "14px",
    "border-radius": "4px",
    // "border-color": "#d9d9d9",
     "border-color": "transparent",
    // "background-color": "#FF5A44",
    "background-color": "#F09199",
    "text-shadow": "0 -1px 0 rgba(0, 0, 0, 0.12)",
    "-webkit-box-shadow": "0 2px 0 rgba(0, 0, 0, 0.045)",
    "box-shadow": "0 2px 0 rgba(0, 0, 0, 0.045)"
});


      // 设置按钮hover事件
       $('.toCopy').hover(function() {
            // hover时效果
            $(this).css({
              'background' : '#02A3FB',
              "border": "1px solid transparent"
            });
        }, function() {
            //非 hover时效果
            $(this).css({
              // 'background' : 'rgb(255, 90, 68)'
              "background-color": "#F09199"
            });
        });

    // 点击【全部复制】按钮
    $('.toCopy').on('click', function() {
            // 最终复制的名称
            var ret = '';

            // 获取标题日文名
            var  titleName = $('.nameSingle a').text();

            // 获取中文名
            var  zhNames = listObj['zhName'];

            // 获取别名
            var  jpZhName = listObj['jpZhName'];

            // 获取集数
            var  animeSum = listObj['sum'];

            // 获取时间
            var  data = listObj['data'];

            //  判断是否填写
            var zhNamesFlasg = false;
            var jpFlag = false;

              // 如果中文名不为空
              if (!zhNamesFlasg && zhNames && zhNames.length > 0) {
                  ret += zhNames[0];
                  zhNamesFlasg = true;
                  console.log(
                    ret
                  );
              }

             // 判断日文名
              if (!jpFlag && titleName != zhNames[0]) {

                // 如果只有标题名,不添加[]
                if (zhNames.length == 0 && jpZhName.length == 0) {
                  ret += titleName;
                } else {
                  ret += '[' + titleName + ']';
                }

                jpFlag = true;
              }

              // 判断别名
              if(jpZhName && jpZhName.length > 0) {
                 // 循环遍历跳转链接
                  for (var i = 0; i < jpZhName.length; i++) {
                        ret += '[' + jpZhName[i] + ']';
                  }

              }

              // 判断时间日期是否为空
              if(data && data.length > 0) {

                  // 判断个是否为"1917年4月"格式
                  if (data[0].indexOf('日') === -1) {
                    ret +=  ' ' + getListDate(data[0]);
                  } else {
                      ret +=  ' ' + data[0];
                  }
              }

              if(animeSum && animeSum.length > 0) {
                   ret += ' 共' + animeSum[0].replace(/话+/g, "") + '集';
              }

              // 获取第一个集数的颜色
              var firstLiColor = $('.subject_prg li:first a').css('color');

              // 获取最后一个集数的颜色
               var lastLiColor = $('.subject_prg li:last a').css('color');

               // 每集鼠标悬停后详细信息DOM元素
               var  animeEpDetailedEle = $('.prg_popup .tip');

               // 获取最后更新完最后一集信息
               var animeEpEndDetailed = "";

               // 开始索引
               var startIndex = "";

               // 结束索引
               var endIndex = "";

               // 更新完日期
               var animeEndDate = '';

               // 临时赋值
               var tempStr = '';

          // animeEpEndDetailed = $('.prg_popup .tip').eq($('.prg_popup .tip').length - 1).html()

                // 如果颜色不同,说明目前是新番,正在更新中
                if (firstLiColor != lastLiColor) {
                    // 保存信息
                    animeEpEndDetailed = animeEpDetailedEle.eq(animeEpDetailedEle.length - 1)[0].innerHTML;

                    // 保存字符串
                    tempStr = animeEpEndDetailed;

                    // 赋值
                    startIndex = tempStr.indexOf(":");

                    // 赋值
                    endIndex = tempStr.indexOf("<");

                    // 赋值日期
                    animeEndDate = animeEpEndDetailed.slice(startIndex + 1, endIndex);

                    // 更改年月日格式
                    // animeEndDate = getListDate(animeEndDate);
                    animeEndDate = animeEndDate;

                    // 拼接字符
                     ret =  ret + ' ' + animeEndDate + '更新完';
                }

          console.log(
            ret,
            listObj
          );

              // 复制文件名
            copyFn('#search_text', ret);
        })

/* ================== 监听键盘按下快捷键,来跳转或触发点击事件Start =================== */
 // 获取键盘码
    function getKeyCode(str) {
        // 获取当前字符串
        var getKey = str.toLocaleLowerCase();
        // 返回结果
        var ret = '';
        // 键码表
        var keyCode = {
                key: {
                    /* 字母和数字键的键码值 */
                    'a': 65,
                    'b': 66,
                    'c': 67,
                    'd': 68,
                    'e': 69,
                    'f': 70,
                    'g': 71,
                    'h': 72,
                    'i': 73,
                    'j': 74,
                    'k': 75,
                    'l': 76,
                    'm': 77,
                    'n': 78,
                    'o': 79,
                    'p': 80,
                    'q': 81,
                    'r': 82,
                    's': 83,
                    't': 84,
                    'u': 85,
                    'v': 86,
                    'w': 87,
                    'x': 88,
                    'y': 89,
                    'z': 90,
                    '0': 48,
                    '1': 49,
                    '2': 50,
                    '3': 51,
                    '4': 52,
                    '5': 53,
                    '6': 54,
                    '7': 55,
                    '8': 56,
                    '9': 57,
                    /* 数字键盘上的键的键码值 后面加_和主键盘数字键 区分开 */
                    '0_': 96,
                    '1_': 97,
                    '2_': 98,
                    '3_': 99,
                    '4_': 100,
                    '5_': 101,
                    '6_': 102,
                    '7_': 103,
                    '8_': 104,
                    '9_': 105,
                    '*': 106,
                    '+_': 107,
                    'enter1': 108,
                    '-': 109,
                    '.': 110,
                    '/': 111,
                    /* 功能键键码值 */
                    'f1': 112,
                    'f2': 113,
                    'f3': 114,
                    'f4': 115,
                    'f5': 116,
                    'f6': 117,
                    'f7': 118,
                    'f8': 119,
                    'f9': 120,
                    'f10': 121,
                    'f11': 122,
                    'f12': 123,
                    /* 控制键键码值 */
                    'backspace': 8,
                    'tab': 9,
                    'clear': 12,
                    'enter': 13,
                    'shift': 16,
                    'ctrl': 17,
                    'control': 17,
                    'alt': 19,
                    'cape lock': 20,
                    'esc': 27,
                    'spacebar': 32,
                    'page up': 33,
                    'page down': 34,
                    'end': 35,
                    'home': 36,
                    'left arrow': 37,
                    'up arrow': 38,
                    'right arrow': 39,
                    'down arrow': 40,
                    'insert': 45,
                    'delete': 46,
                    'num lock': 144,
                    ';': 186,
                    ':': 186,
                    '=': 187,
                    '+': 187,
                    '-': 189,
                    '_': 189,
                    '.': 190,
                    '>': 190,
                    '/': 191,
                    '?': 191,
                    '`': 192,
                    '~': 192,
                    '[': 219,
                    '{': 219,
                    '/': 220,
                    '|': 220,
                    ']': 221,
                    '}': 221
                }
            }
            // 循环遍历
        for (var i in keyCode['key']) {
            // 判断是否有当前key值
            if (i == getKey) {
                // 返回结果
                ret = keyCode['key'][i];
            }
        }
        return ret;
    }
    // 监听鼠标按下事件
    // document.onkeydown = function(e) {
    $(document).keydown(function(e){
            /*  console.log(
                e
              );*/
            // 获取键盘控制键
            var keyCode = e.keyCode || e.which || e.charCode;
            // 获取Ctrl键,返回true和false
            var ctrlKey = e.ctrlKey || e.metaKey;
            // 获取Shift键,返回true和false
            var shiftKey = e.shiftKey || e.metaKey;
            // 获取Alt键,返回true和false
            var altKey = e.altKey || e.metaKey;
            /* ========= 判断按下Ctrl + Shift  + Alt + 英文字母/数字快捷键 ============*/
            if (ctrlKey && shiftKey && altKey && keyCode == getKeyCode('X')) {
                toUrl(['动漫花园', 'Nyaa表站'], 1);
                console.log('Ctrl + Shift + Alt + X');
            } else if (ctrlKey && shiftKey && keyCode == getKeyCode('X')) {
                /* ========= 判断按下Ctrl + Shift  + 英文字母/数字快捷键 ============*/
                toUrl('动漫花园', 0);
                console.log('Ctrl + Shift + X');
            } else if (ctrlKey && altKey && keyCode == getKeyCode('X')) {
                /* ========= 判断按下Ctrl + Alt  + 英文字母/数字快捷键 ============*/
                console.log('Ctrl + Alt + X');
            } else if (shiftKey && altKey && keyCode == getKeyCode('X')) {
                /* ========= 判断按下Shift + Alt  + 英文字母/数字快捷键 ============*/
                console.log('Shift + Alt + X');
            } else if (ctrlKey && keyCode == getKeyCode('x')) {
                /* ========= 判断按下Ctrl + 英文字母/数字快捷键 ============*/
                console.log('Ctrl +  x');
            } else if (shiftKey && keyCode == getKeyCode('M')) {
                /* ========= shiftKey + M跳转MAL ============*/

                setTimeout(function () {
                  // 获取url参数
                  var urlKey = getQueryVariable('keyword');
                  // 判断参数是否有值
                  if (urlKey && urlKey == "MAL") {
                      // 解码赋值
                      urlKey = decodeURIComponent(urlKey);

                  //循环遍历
                  $('.frdScore.e-userjs-score-compare').each(function (index,ele) {
                      // 获取参数
                      var title = $(ele).find('a').attr('title');

                      // 如果是MAL进入
                      if (title == 'myanimelist') {
                          // 跳转url
                         var toMalUrl = $(ele).find('a:eq(1)').attr("href")
                           window.open(toMalUrl,"_blank")

                      }
                  })

                  }

              //获取url参数[得到url参数]为对象
              function getQueryVariable(variable) {
                  var query = window.location.search.substring(1);
                  var vars = query.split("&");
                  for (var i = 0; i < vars.length; i++) {
                      var pair = vars[i].split("=");
                      if (pair[0] == variable) {
                          return pair[1];
                      }
                  }
                  return (false);
              }
          }, 1500)

                console.log('shiftKey +  M');
            } else if (shiftKey && keyCode == getKeyCode('C')) {
                /* ========= 判断按下Shift + 英文字母/数字快捷键 ============*/
                // 点击一键复制按钮
                $('.toCopy').click();

                console.log('Shift +  C');
            } else if (altKey && keyCode == getKeyCode('X')) {
                /* ========= 判断按下Alt + 英文字母/数字快捷键 ============*/
                console.log('Alt +  X');
            } /*else if (keyCode) {
                // 如果是单个键的话
                // 判断选择哪个快捷键,动态获取哪个页面
                switch (keyCode) {
                    case getKeyCode('F1'):
                        console.log('F1');
                        break;
                    case getKeyCode('F2'):
                        console.log('F2');
                        break;
                }
            }*/
            // 阻止默认事件
            // e.preventDefault();
            // return false;
            return;
        })
        //跳转url
        // 第一个参数可用字符串,也可以用数组,如果是字符串,单独跳转,如果是数组格式,同时跳转
        // 第二个参数是用中文名跳转,还是用日文名跳转,0是中文,1是日文
    function toUrl(toUrlNames, nameType) {
        // 跳转url
        var toUrls = {
                '动漫花园': 'https://share.dmhy.org/topics/list?keyword=',
                'Nyaa表站': 'https://nyaa.si/?f=0&c=1_4&q=',
                'Nyaa里站': 'https://sukebei.nyaa.si/?f=0&c=1_1&q='
            }
            // 获取url
        var getToUrl = toUrlNames;
        // 判断拼接名称类型
        var nameType = nameType;
        // 获取标题日文名
        var titleName = $('.nameSingle a').html();

            // 0的话用中文名跳转
        if (nameType == 0) {
            // 赋值
            nameType = listObj['zhName'];
        } else if (nameType == 1) {
            // 赋值
            nameType = titleName;
        }
        // 判断是否是字符串格式,否则就是数组格式
        if (toString.call(toUrlNames) == "[object String]") {
            // 跳转页面
            window.open(toUrls[getToUrl] + nameType, "_blank");
        } else if (toString.call(toUrlNames) == "[object Array]") {
            // 创建新数组
            var ret = [];
            // 循环变量
            for (var i = 0; i < getToUrl.length; i++) {
                window.open(toUrls[getToUrl[i]] + nameType, "_blank");
            }
        }
    }


    /* ================== 监听键盘按下快捷键,来跳转或触发点击事件End =================== */

});

function noRepeat(arr) {
            var arr1 = [];
            for (var i = 0; i < arr.length; i++) {
                var item = arr[i];
                if (arr1.indexOf(item) === -1) arr1.push(item);
            }
            return arr1;
        }

/*
   封装函数获取年/月/日 格式日期,并更改年月日格式

   2020年6月21日21:51:15完美封装

   2020年7月4日13:28:38 更改2015格式并添加年

   2020年8月13日20:55:43 新增"2020-10"和"2020-3"格式判断

   2020年8月17日22:58:51 新增1986.10.15 / 1986.10.5 / 1986.1.15 / 1986.1.3 格式判断

  2022年2月16日20:48:37 新增"1917年4月"格式判断
  */
 function getListDate(value) {
    // 获取传的值
    var str = value;
    // 创建新字符串保存
    var ret = "";
    // 创建最终返回字符串
    var retStr = "";
    // 循环去除空格
    for (i = 0; i < str.length; i++) {
        if (str.charAt(i) != " ") {
            ret += str[i];
        }
    }
    // 分类
    var str1 = "";
    var str2 = "";
    var str3 = "";
    var index = 0;
    var dateType = 0;


    // 如果有年月日格式
    if (ret.indexOf('年') != -1 && ret.indexOf('月') == -1 & ret.indexOf('日') == -1) {
        dateType = 1;
        index = ret.indexOf('年');
    } else if (ret.indexOf('月') != -1 && ret.indexOf('日') == -1) {
        dateType = 2;
        index = ret.indexOf('月');
    } else if (ret.indexOf('年') != -1 && ret.indexOf('月') != -1 && ret.indexOf('日') != -1) {
        dateType = 3;
        index = ret.indexOf('日');
    } else if ((/^\+?[0-9][0-9]*$/).test(ret)) { // 判断是否为2015这样的格式
        dateType = 6;
        index = ret + '年';
        }

    // 判断是否有春/夏/秋/冬
    if (ret.indexOf('春') != -1) {
        dateType = 4;
        index = ret.indexOf('春');
    } else if (ret.indexOf('夏') != -1) {
        dateType = 4;
        index = ret.indexOf('夏');
    } else if (ret.indexOf('秋') != -1) {
        dateType = 4;
        index = ret.indexOf('秋');
    } else if (ret.indexOf('冬') != -1) {
        dateType = 4;
        index = ret.indexOf('冬');
    }


    // 判断是否为年/月/日格式
    // 判断年月日格式
    if (ret.substring(4, 5) == '-' && ret.substring(7, 8) == '-'
        || ret.substring(4, 5) == '/' && ret.substring(7, 8) == '/'
        || ret.substring(4, 5) == '-') {
        // 赋值类型是/或-
        dateType = 5;
        // 判断2020-02-28和2020/02/28/*
        // 判断2020-02-2和2020/02/2/*
        if (ret.substring(8, 10).indexOf('/') == -1 && ret.substring(8, 10).length == 2) {
            str3 = ret.substring(0, 4) + "年" + ret.substring(5, 7) + "月" + ret.substring(8, 10) + "日";
        } else if (ret.substring(8, 10).indexOf('/') == -1 && ret.substring(8, 10).length == 1) {
            str3 = ret.substring(0, 4) + "年" + ret.substring(5, 7) + "月0" + ret.substring(8, 9) + "日";
        } else if (ret.substring(8, 10).indexOf('/') == 1 && ret.substring(8, 10).length == 2) {
            str3 = ret.substring(0, 4) + "年" + ret.substring(5, 7) + "月0" + ret.substring(8, 9) + "日";
        } else if (ret.substring(8, 10).indexOf('/') == 1 && ret.substring(8, 10).length == 3) {
            str3 = ret.substring(0, 4) + "年" + ret.substring(5, 7) + "月" + ret.substring(8, 9) + "日";
        } else if (ret.substring(8, 10).indexOf('/') == -1 && ret.length == 7) {
            str3 = ret.substring(0, 4) + "年" + ret.substring(5, 7) + "月";
        } else if (ret.substring(8, 10).indexOf('/') == -1 && ret.length == 6) {
            str3 = ret.substring(0, 4) + "年0" + ret.substring(5, 7) + "月";
        }
    } else if (ret.substring(4, 5) == '-' && ret.substring(6, 7) == '-' || ret.substring(4, 5) == '/' && ret.substring(6, 7) == '/') {
        // 赋值类型是/或-
        dateType = 5;
        // 判断2020-2-28和2020/2/28/*
        // 判断2020-2-2和2020/2/2/*
        if (ret.substring(7, 9).indexOf('/') == -1 && ret.substring(7, 9).length == 2) {
            str3 = ret.substring(0, 4) + "年0" + ret.substring(5, 6) + "月" + ret.substring(7, 9) + "日";
        } else if (ret.substring(7, 9).indexOf('/') == -1 && ret.substring(7, 9).length == 1) {
            str3 = ret.substring(0, 4) + "年0" + ret.substring(5, 6) + "月0" + ret.substring(7, 9) + "日";
        } else if (ret.substring(7, 9).indexOf('/') == 1 && ret.substring(7, 9).length == 2) {
            str3 = ret.substring(0, 4) + "年0" + ret.substring(5, 6) + "月0" + ret.substring(7, 8) + "日";
        }  else if (ret.substring(7, 9).indexOf('/') == 1 && ret.substring(7, 9).length == 3) {
            str3 = ret.substring(0, 4) + "年0" + ret.substring(5, 6) + "月" + ret.substring(7, 9) + "日";
        }
    }

    // 最后判断,并赋值
    if (dateType == 1) {
        if (ret.indexOf('年') == ret.length - 1 || ret.substring(index + 1, index + 2) == '/' || ret.substring(ret.length, ret.length + 1) == '') {
            retStr = ret.substring(0, index + 1);
        }
    } else if (dateType == 2) {
        if (ret.indexOf('月') == ret.length - 1 || ret.substring(index + 1, index + 2) == '/' || ret.substring(ret.length, ret.length + 1) == '') {
            // 判断是否1917年4月格式
            if (ret.indexOf('日') === -1) {
                // 如果月数大于0,进入判断
                if (ret.slice(3, 4) > 0) {
                 retStr =    ret.slice(0, 5) + '0' + ret.slice(3, 4) + '月';
                }
            } else {
              retStr = ret.substring(0, index + 1);
            }
        }
    } else if (dateType == 3) {
        // 判断格式
        if (ret.substr(4, 1) == '年' && ret.substr(7, 1) == '月' && ret.substr(10, 1) == '日') {
            // 如果日后面没多余的字符的话
            if (ret.substr(11, 1).length == 0) {
                retStr = ret.substr(0, 11);
            } else if (ret.substr(11, 1).length == 1 && ret.substr(11, 1) == '/') {
                retStr = ret.substr(0, 11);
            }
        } else if (ret.substr(4, 1) == '年' && ret.substr(7, 1) == '月' && ret.substr(9, 1) == '日') {
            retStr = ret.substr(0, 8) + '0' + ret.substr(8, 2);
        } else if (ret.substr(4, 1) == '年' && ret.substr(6, 1) == '月' && ret.substr(9, 1) == '日') {
            retStr = ret.substr(0, 5) + '0' + ret.substr(5, 2) + ret.substr(7, 3);
        } else if (ret.substr(4, 1) == '年' && ret.substr(6, 1) == '月' && ret.substr(8, 1) == '日') {
            retStr = ret.substr(0, 5) + '0' + ret.substr(5, 2) + '0' + ret.substr(7, 2);
        }
    } else if (dateType == 4) {
        // 赋值
        retStr = ret.substring(0, index + 1);
    } else if (dateType == 5) {
        // 赋值
        retStr = str3;
    } else if (dateType == 6) {
        // 赋值
        retStr = index;
    }

    // 返回xxxx年xx月xx日格式
    return retStr;
}