奇葩处理

1. 后台传过来的日期处理

最近做了个综合查询平台,把以前系统做一个综合查询,有个个人的基本信息页面,里面的个人简历信息不同系统拼凑而成,例如:

张三(A系统获得)1999年3月3日(B系统获得)生人,2014年4月4日(C系统获得)毕业,2015年5月5日(D系统获得)参加工作

以上日期都是从不同的系统获取来的,但是以前做系统的时候,后端还没有把日期统一标准化-_-(问:有个标准化是多么重要),传过来的数据有可能这样

  • 2019
  • 2019.3
  • 2019.3.5
  • 2019-3
  • 2019-3-5
    我还需要把他们格式化为
****年或******月或****年**月**日

所以我采取了一下方法(肯定有更好的方法,目前我是没想到)

getDateStr (value) {
      var reg2 = /^\d{4}.(0\d{1}|1[0-2]).(0\d{1}|[12]\d{1}|3[01])$/ // 验证YYYY.MM.DD格式
      var reg4 = /^\d{4}.(0\d{1}|1[0-2])$/ // 验证YYYY.MM格式
      //replace(/\b(0+)/gi, '')是去掉0
      if(value.length === 4) { // ----------------yyyy
        return value + '年'
      } (value.length === 7) { // -----------------------yyyy.mm或者yyyy-mm
        if (reg4.test(value)) { // -----------------------yyyy.mm
          return value.replace(/(\d{4}).(\d{2})/, '$1年$2月').replace(/\b(0+)/gi, '')
        } else { // --------------------------------------yyyy-mm
          return value.replace(/(\d{4})-(\d{2})/, '$1年$2月').replace(/\b(0+)/gi, '')
        }
      } else if  else if (value.length === 10) { // ---------------yyyy.mm.dd或者yyyy-mm-dd
        if (reg2.test(value)) { // -----------------------yyyy.mm
          return value.replace(/(\d{4}).(\d{2}).(\d{2})/, '$1年$2月$3日').replace(/\b(0+)/gi, '')
        } else { // --------------------------------------yyyy-mm
          return value.replace(/(\d{4})-(\d{2})-(\d{2})/, '$1年$2月$3日').replace(/\b(0+)/gi, '')
        }
      } else {
        return value
      }
    }

未完待续~~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。