常用格式转换及验证

 checkSocialCreditCode: function(Code) {
    var patrn = /^[0-9A-Z]+$/
    // 18位校验及大写校验
    if ((Code.length != 18) || (patrn.test(Code) == false)) {
      console.info('不是有效的统一社会信用编码!')
      return false
    } else {
      var Ancode
      // 统一社会信用代码的每一个值
      var Ancodevalue
      // 统一社会信用代码每一个值的权重
      var total = 0
      var weightedfactors = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28]
      // 加权因子
      var str = '0123456789ABCDEFGHJKLMNPQRTUWXY'
      // 不用I、O、S、V、Z
      for (var i = 0; i < Code.length - 1; i++) {
        Ancode = Code.substring(i, i + 1)
        Ancodevalue = str.indexOf(Ancode)
        total = total + Ancodevalue * weightedfactors[i]
        // 权重与加权因子相乘之和
      }
      var logiccheckcode = 31 - total % 31
      if (logiccheckcode == 31) {
        logiccheckcode = 0
      }
      var Str = '0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,T,U,W,X,Y'
      var Array_Str = Str.split(',')
      logiccheckcode = Array_Str[logiccheckcode]
      var checkcode = Code.substring(17, 18)
      if (logiccheckcode != checkcode) {
        console.info('不是有效的统一社会信用编码!')
        return false
      } else {
        console.info('yes')
      }
      return true
    }
  },
  // 身份证认证
  isCardNo: function(id) {
    // 1 "验证通过!", 0 //校验不通过 // id为身份证号码
    var format = /^(([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2]))\d{4}(([1][9]\d{2})|([2]\d{3}))(([0][1-9])|([1][0-2]))(([0][1-9])|([1-2][0-9])|([3][0-1]))\d{3}[0-9xX]$/
    // 号码规则校验
    if (!format.test(id)) {
      // return {'status':0,'msg':'身份证号码不合规'};
      return false
    }
    // 区位码校验
    // 出生年月日校验  前正则限制起始年份为1900;
    var year = id.substr(6, 4)
    // 身份证年
    var month = id.substr(10, 2)
    // 身份证月
    var date = id.substr(12, 2)
    // 身份证日
    var time = Date.parse(month + '-' + date + '-' + year)
    // 身份证日期时间戳date
    var now_time = Date.parse(new Date())
    // 当前时间戳
    var dates = (new Date(year, month, 0)).getDate()
    // 身份证当月天数
    if (time > now_time || date > dates) {
      // return { 'status': 0, 'msg': '出生日期不合规' }
      return false
    }
    // 校验码判断
    var c = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
    // 系数
    var b = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
    // 校验码对照表
    var id_array = id.split('')
    var sum = 0
    for (var k = 0; k < 17; k++) {
      sum += parseInt(id_array[k]) * parseInt(c[k])
    }
    if (id_array[17].toUpperCase() != b[sum % 11].toUpperCase()) {
      // return { 'status': 0, 'msg': '身份证校验码不合规' }
      return false
    }
    // return { 'status': 1, 'msg': '校验通过' }
    return true
  },
  // 字段为空 -代替
  isNull(str) {
    if (!str) {
      str = '--'
    }
    return str
  },
  // ObjectToData
  ObjectToDate(param) {
    if (!param) {
      return ''
    } else {
      return param.year + '-' + param.monthValue + '-' + param.dayOfMonth
    }
  },
  ObjectToDateTime(param) {
    if (!param) {
      return ''
    } else {
      return param.year + '-' + param.monthValue + '-' + param.dayOfMonth + ' ' + param.hour + ':' + param.minute + ':' + param.second
    }
  },
  // format 'yyyy-MM-dd' to ''
  formatDate(date, type) {
    var newDate = ''
    var year = ''
    var month = ''
    var day = ''
    if (!date) {
      return ''
    } else {
      newDate = date.split('-')
      year = newDate[0] ? newDate[0] : '--'
      month = newDate[1] ? newDate[1] : '00'
      day = newDate[2] ? newDate[2] : '00'
      if (type == 'yyyyMMdd') {
        return year + '' + month + '' + day
      } else if (type == 'yyyy/MM/dd') {
        return year + '/' + month + '/' + day
      } else if (type == 'yyyy-MM') {
        return year + '-' + month
      } else if (type == 'yyyy/MM') {
        return year + '/' + month
      } else if (type == 'yyyy-MM-dd 00:00:00') {
        return year + '-' + month + '-01 00:00:00'
      }
      if (type == 'yyyy MM dd') {
        return {
          year: year,
          month: month,
          day: day
        }
      }
    }
  },
  // format date to ''
  FormatDate(date, type) {
    var year = date.getFullYear()
    // js中是从0开始所以要加1
    var month = date.getMonth() + 1
    var day = date.getDate()
    var hour = date.getHours()
    var minute = date.getMinutes()
    var second = date.getSeconds()
    if (type == 'yyyy-MM-dd') {
      return year + '-' + month + '-' + day
    }
    if (type == 'yyyy/MM/dd') {
      return year + '/' + month + '/' + day
    }
    if (type == 'yyyy-MM-dd HH:mm:ss') {
      hour = hour > 10 ? hour : '0' + hour
      minute = minute > 10 ? minute : '0' + minute
      second = second > 10 ? second : '0' + second
      return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second
    }
  },
  // 将一个对象转成QueryString
  toQueryString(obj) {
    if (!obj) return ''
    return this.cleanArray(
      Object.keys(obj).map(key => {
        if (obj[key] === undefined) return ''
        return encodeURIComponent(key) + '=' + encodeURIComponent(obj[key])
      })
    ).join('&')
  },
  cleanArray(actual) {
    const newArray = []
    for (let i = 0; i < actual.length; i++) {
      if (actual[i]) {
        newArray.push(actual[i])
      }
    }
    return newArray
  },
  // 验证电话联系方式
  ValidatePhone(val) {
    var isPhone = /^([0-9]{3,4}-)?[0-9]{7,8}$/; //手机号码
    var isMob = /^0?1[3|4|5|8][0-9]\d{8}$/; // 座机格式
    if (isMob.test(val) || isPhone.test(val)) {
      return true;
    } else {
      return false;
    }
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值