2021-4-28

特殊字符转正常字符

	clearRegExp(s) {
      var pattern = new RegExp(
        "[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()&mdash;—|{}【】‘;:”“'。,、?]"
      );
      var rs = "";
      for (var i = 0; i < s.length; i++) {
        rs = rs + s.substr(i, 1).replace(pattern, "\\" + s.substr(i, 1));
      }
      return rs;
    },

ES6数据类型判断

简单数据类型
var a = "iamstring.";
var b = 222;
var c = undefined;
var d = null 
var e = true

判断						返回值
typeof a ------------> string
typeof b ------------> number
typeof c ------------> undefined
typeof d ------------> object
typeof e ------------> boolean
复杂数据类型
var a = {}
var c = [1,2,3];
var d = new Date();
var e = function(){alert(111);};
判断						           返回值
a.constructor === Object----------> true
c.constructor === Array ----------> true
d.constructor === Date -----------> true
e.constructor === Function -------> true

表单验证方法收集

//纯数字
export function validataNumber(str){
    const reg = /^([0-9]*$/
    return reg.test(str)
}

//非0开头纯数字
export function validataNumber(str){
    const reg = /^([1-9]\d{0,9})$/
    return reg.test(str)
}

//纯数字带小数点2位 
export function validateFixedTwo(str){
    const reg = /^([1-9]\d{0,9}|0)([.]?|\.\d{1,2})?$/
    return reg.test(str)
}

//判断两个对象相等
export function isObjectValueEqual(a, b) {   
     //取对象a和b的属性名
    var aProps = Object.getOwnPropertyNames(a);
    var bProps = Object.getOwnPropertyNames(b);
     //判断属性名的length是否一致
    if (aProps.length != bProps.length) {
        return false;
    }
     //循环取出属性名,再判断属性值是否一致
    for (var i = 0; i < aProps.length; i++) {
        var propName = aProps[i];
        if (a[propName] !== b[propName]) {
            return false;
        }
    }
 
    return true;
}

/* 字段不能全为空白字符 */
export function isNotBlankInput(str) {
  return str && str.trim().length > 0
}
 
/* 合法用户名称 */
export function isvalidUsername(str) {
  const reg = /^[a-zA-Z0-9_-]+((\.)?[a-zA-Z0-9_-]+)+$/
  return reg.test(str.trim())
}
 
/* 合法uri*/
export function validateURL(textval) {
  const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
  return urlregex.test(textval)
}

/* 小写字母*/
export function validateLowerCase(str) {
  const reg = /^[a-z]+$/
  return reg.test(str)
}

/* 大写字母*/
export function validateUpperCase(str) {
  const reg = /^[A-Z]+$/
  return reg.test(str)
}

/* 大小写字母*/
export function validatAlphabets(str) {
  const reg = /^[A-Za-z]+$/
  return reg.test(str)
}

/** 纯数字 */
export function validateNumber(str) {
  const reg = /^[0-9]*$/
  console.log(2222, reg.test(str))
  return reg.test(str)
}

/** 不能出现汉字的 */
export function validateNoChinese(str) {
  const reg = /^[^\u4e00-\u9fa5]+$/
  return reg.test(str)
}

/** 长度不能大于1000 */
export function validateLengthForOneThousand(str) {
  if (str && str.length <= 1000) {
    return true
  } else {
    return false
  }
}

/** 地址长度不能大于 512 */
export function validateLengthForFiveThousand(str) {
  if (str && str.length <= 512) {
    return true
  } else {
    return false
  }
}

/** 长度不能大于300*/
export function validateLengthForThreeHundred(str) {
  if (str && str.length <= 300) {
    return true
  } else {
    return false
  }
}

/** 输入名称长度 不能大于100 */
export function validateLengthForOneHundred(str) {
  if (str && str.length <= 100) {
    return true
  } else {
    return false
  }
}
/** 长度不能超过64 */

export function validateLengthForSixtyFor(str) {
  if (str && str.length <= 64) {
    return true
  } else {
    return false
  }
}
/** 长度不能超过32 */

export function validateLengthForThirtyTwo(str) {
  if (str && str.length <= 32) {
    return true
  } else {
    return false
  }
}

/** 长度不能超过16 */
export function validateLengthForSixteen(str) {
  if (str && str.length <= 16) {
    return true
  } else {
    return false
  }
}

/** 电话号码 */
export function isvalidPhone(str) {
  const reg = /^1(3|4|5|6|7|8|9)\d{9}$/
  return reg.test(str)
}

/**
 * 判断手机号码是否正确
 */
export function isvalidatemobile(phone) {
  const list = []
  let result = true
  let msg = ''
  var isPhone = /^0\d{2,3}-?\d{7,8}$/
  // 增加134 减少|1349[0-9]{7},增加181,增加145,增加17[678]
  var isMob = /^((\+?86)|(\(\+86\)))?(13[0123456789][0-9]{8}|15[012356789][0-9]{8}|18[012356789][0-9]{8}|14[57][0-9]{8}|17[3678][0-9]{8})$/
  if (!validatenull(phone)) {
    if (phone.length == 11) {
      if (isPhone.test(phone)) {
        msg = '手机号码格式不正确'
      } else {
        result = false
      }
    } else {
      msg = '手机号码长度不为11位'
    }
  } else {
    msg = '手机号码不能为空'
  }
  list.push(result)
  list.push(msg)
  return list
}

/** 货币 */
export function ismoney(str) {
  const reg = /^[0-9]+([.]{1}[0-9]+){0,1}$/
  return reg.test(str)
}

/** email校验 */
export function isvalidEmail(str) {
  const reg = /^[a-z0-9]+([._\\\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/
  return reg.test(str)
}

/** 身份证校验1 */
export function isvalidIdCard(str) {
   const reg = /^[1-9]{1}[0-9]{5}(19|20)[0-9]{2}((0[1-9]{1})|(1[0-2]{1}))((0[1-9]{1})|([1-2]{1}[0-9]{1}|(3[0-1]{1})))[0-9]{3}[0-9xX]{1}$/
   return reg.test(str)
}

// 身份证校验2
/**
	 * 检验身份证号码是否符合规范
	 *
	 * @param IDStr 身份证号码
	 * @return 错误信息或成功null
 */
export function isvalidIdCard(IDStr) {
  var tipInfo = null// 记录错误信息
  var Ai = ''
  // 判断号码的长度 15位或18位
  if (IDStr.length !== 15 && IDStr.length !== 18) {
    tipInfo = '身份证号码长度应该为15位或18位'
    return tipInfo
  }
  // 18位身份证前17位位数字,如果是15位的身份证则所有号码都为数字
  if (IDStr.length === 18) {
    Ai = IDStr.substring(0, 17)
  } else if (IDStr.length === 15) {
    Ai = IDStr.substring(0, 6) + '19' + IDStr.substring(6, 15)
  }
  if (validateNumber(Ai) === false) {
    tipInfo = '身份证15位号码都应为数字 ; 18位号码除最后一位外,都应为数字'
    return tipInfo
  }
  // 判断出生年月是否有效
  var strYear = Ai.substring(6, 10)// 年份
  var strMonth = Ai.substring(10, 12)// 月份
  var strDay = Ai.substring(12, 14)// 日期
  if (isDate(strYear + '-' + strMonth + '-' + strDay) === false) {
    tipInfo = '身份证出生日期无效'
    return tipInfo
  }
  var date = new Date()
  try {
    if ((date.getFullYear() - parseInt(strYear)) > 150 ||
      (date.getTime() - new Date(strYear + '-' + strMonth + '-' + strDay).getTime()) < 0) {
      tipInfo = '身份证生日不在有效范围'
      return tipInfo
    }
  } catch (e) {
    console.error('格式错误', e)
    tipInfo = '身份证日期无效'
    return tipInfo
  }
  if (parseInt(strMonth) > 12 || parseInt(strMonth) === 0) {
    tipInfo = '身份证月份无效'
    return tipInfo
  }
  if (parseInt(strDay) > 31 || parseInt(strDay) === 0) {
    tipInfo = '身份证日期无效'
    return tipInfo
  }
  // 判断地区码是否有效
  if (!GetAreaCode(Ai) === undefined) {
    tipInfo = '身份证地区编码错误。'
    return tipInfo
  }
  if (isVarifyCode(Ai, IDStr) === false) {
    tipInfo = '身份证校验码无效,不是合法的身份证号码'
    return tipInfo
  }
  // console.log(4444, tipInfo)
  return tipInfo
}
/**
 * 功能:判断字符串出生日期是否符合正则表达式:包括年月日,闰年、平年和每月31天、30天和闰月的28天或者29天
 *
 * @param string
 * @return true, 符合; false, 不符合。
 */
export function isDate(strDate) {
  // var pattern = /^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))?$/
  const pattern = /((^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(10|12|0?[13578])([-\/\._])(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(11|0?[469])([-\/\._])(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(0?2)([-\/\._])(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)([-\/\._])(0?2)([-\/\._])(29)$)|(^([3579][26]00)([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][0][48])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][0][48])([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][2468][048])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][2468][048])([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][13579][26])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][13579][26])([-\/\._])(0?2)([-\/\._])(29)$))/
  // 上面一个是后后端统一的 但是跑不过去 暂时用下一个
  return pattern.test(strDate)
}
// 如果身份证前两位的地区码不在Hashtable,则地区码有误 返回true 或 undefined
export function GetAreaCode(Ai) {
  var areacode = ['11', '12', '13', '14', '15', '21', '22', '23', '31', '32', '33',
    '34', '35', '36', '37', '41', '42', '43', '44', '45', '46', '50', '51', '52', '53',
    '54', '61', '62', '63', '64', '65', '71', '81', '82', '91']
  for (let index = 0; index < areacode.length; index++) {
    const element = areacode[index]
    if (element === Ai.substring(0, 2)) {
      return true
    }
  }
}
/*
 * 判断第18位校验码是否正确 第18位校验码的计算方式:
 1. 对前17位数字本体码加权求和 公式为:S = Sum(Ai * Wi), i = 0, ... , 16
 * 其中Ai表示第i个位置上的身份证号码数字值,Wi表示第i位置上的加权因子,其各位对应的值依次为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4
 * 2
  2. 用11对计算结果取模 Y = mod(S, 11)
 3. 根据模的值得到对应的校验码 对应关系为: Y值: 0 1 2 3 4 5 6 7 8 9 10
 * 校验码: 1 0 X 9 8 7 6 5 4 3 2
 */
export function isVarifyCode(Ai, IDStr) {
  var VarifyCode = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
  var Wi = ['7', '9', '10', '5', '8', '4', '2', '1', '6', '3', '7', '9',
    '10', '5', '8', '4', '2']
  var sum = 0
  for (var i = 0; i < 17; i++) {
    sum = sum + parseInt(Ai.charAt(i)) *
      parseInt(Wi[i])
  }
  var modValue = sum % 11
  var strVerifyCode = VarifyCode[modValue]
  Ai = Ai + strVerifyCode
  if (IDStr.length === 18) {
    if (Ai !== IDStr) {
      return false
    }
  }
  return true
}

深层对象(数组)值获取

function getDeepDataFromArrOrObj(data, directArr = []) {
  if (directArr.length === 0) {
    return data;
  }
  const name = directArr.shift();
  if (!data[name]) {
    return name + "子项不存在";
  }
  if (Array.isArray(data[name]) || data[name].constructor === Object) {
    return getDeepDataFromArrOrObj(data[name], directArr);
  } else {
    return name + "子项不是对象或数组";
  }
}


----------------------------------------数据调用---------------------------------------------
const directArr = ["data", "data", "tHeader", "1", "children"];
const value = fun.getDeepDataFromArrOrObj(data, directArr);
console.log(value);

----------------------------------------测试数据---------------------------------------------

var data = {
  data: {
    isLogin: true,
    isSuccess: true,
    msg: "",
    data: {
      tHeader: [
        {
          name: "时间",
          children: []
        },
        {
          name: "表单1",
          children: ["姓名", "年龄", "费率"]
        },
        {
          name: "表单2",
          children: ["姓名", "年龄", "费率"]
        }
      ],
      tBody: [
        {
          time: "2021-04-23 00:00:00",
          oneLine: [[], []]
        },
        {
          time: "2021-04-23 02:00:00",
          oneLine: [
            {
              time: "1619114460000",
              timeFmt: "2021-04-23 02:01:00",
              items: [
                {
                  name: "姓名",
                  value: "董滢纲",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.1",
                  type: "text"
                }
              ]
            },
            {
              time: "1619114460000",
              timeFmt: "2021-04-23 02:01:00",
              items: [
                {
                  name: "姓名",
                  value: "dyg",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.8",
                  type: "text"
                }
              ]
            }
          ]
        },
        {
          time: "2021-04-23 04:00:00",
          oneLine: [
            {
              time: "1619121660000",
              timeFmt: "2021-04-23 04:01:00",
              items: [
                {
                  name: "姓名",
                  value: "董滢纲",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.5",
                  type: "text"
                }
              ]
            },
            {
              time: "1619121660000",
              timeFmt: "2021-04-23 04:01:00",
              items: [
                {
                  name: "姓名",
                  value: "dyg",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.8",
                  type: "text"
                }
              ]
            }
          ]
        },
        {
          time: "2021-04-23 06:00:00",
          oneLine: [
            {
              time: "1619128860000",
              timeFmt: "2021-04-23 06:01:00",
              items: [
                {
                  name: "姓名",
                  value: "董滢纲",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.5",
                  type: "text"
                }
              ]
            },
            {
              time: "1619128860000",
              timeFmt: "2021-04-23 06:01:00",
              items: [
                {
                  name: "姓名",
                  value: "dyg",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.8",
                  type: "text"
                }
              ]
            }
          ]
        },
        {
          time: "2021-04-23 08:00:00",
          oneLine: [
            {
              time: "1619345929727",
              timeFmt: "2021-04-25 18:18:49",
              items: [
                {
                  name: "姓名",
                  value: "董滢纲",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.5",
                  type: "text"
                }
              ]
            },
            {
              time: "1619136060000",
              timeFmt: "2021-04-23 08:01:00",
              items: [
                {
                  name: "姓名",
                  value: "dyg",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.8",
                  type: "text"
                }
              ]
            }
          ]
        },
        {
          time: "2021-04-23 10:00:00",
          oneLine: [
            {
              time: "1619143260000",
              timeFmt: "2021-04-23 10:01:00",
              items: [
                {
                  name: "姓名",
                  value: "董滢纲",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.5",
                  type: "text"
                }
              ]
            },
            {
              time: "1619143260000",
              timeFmt: "2021-04-23 10:01:00",
              items: [
                {
                  name: "姓名",
                  value: "dyg",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.8",
                  type: "text"
                }
              ]
            }
          ]
        },
        {
          time: "2021-04-23 12:00:00",
          oneLine: [
            {
              time: "1619150460000",
              timeFmt: "2021-04-23 12:01:00",
              items: [
                {
                  name: "姓名",
                  value: "董滢纲",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.5",
                  type: "text"
                }
              ]
            },
            {
              time: "1619150460000",
              timeFmt: "2021-04-23 12:01:00",
              items: [
                {
                  name: "姓名",
                  value: "dyg",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.8",
                  type: "text"
                }
              ]
            }
          ]
        },
        {
          time: "2021-04-23 14:00:00",
          oneLine: [
            {
              time: "1619157660000",
              timeFmt: "2021-04-23 14:01:00",
              items: [
                {
                  name: "姓名",
                  value: "董滢纲",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.5",
                  type: "text"
                }
              ]
            },
            {
              time: "1619157660000",
              timeFmt: "2021-04-23 14:01:00",
              items: [
                {
                  name: "姓名",
                  value: "dyg",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.8",
                  type: "text"
                }
              ]
            }
          ]
        },
        {
          time: "2021-04-23 16:00:00",
          oneLine: [
            {
              time: "1619164860000",
              timeFmt: "2021-04-23 16:01:00",
              items: [
                {
                  name: "姓名",
                  value: "董滢纲",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.5",
                  type: "text"
                }
              ]
            },
            {
              time: "1619164860000",
              timeFmt: "2021-04-23 16:01:00",
              items: [
                {
                  name: "姓名",
                  value: "dyg",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.8",
                  type: "text"
                }
              ]
            }
          ]
        },
        {
          time: "2021-04-23 18:00:00",
          oneLine: [
            {
              time: "1619172060000",
              timeFmt: "2021-04-23 18:01:00",
              items: [
                {
                  name: "姓名",
                  value: "董滢纲",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.5",
                  type: "text"
                }
              ]
            },
            {
              time: "1619172060000",
              timeFmt: "2021-04-23 18:01:00",
              items: [
                {
                  name: "姓名",
                  value: "dyg",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.8",
                  type: "text"
                }
              ]
            }
          ]
        },
        {
          time: "2021-04-23 20:00:00",
          oneLine: [
            {
              time: "1619179260000",
              timeFmt: "2021-04-23 20:01:00",
              items: [
                {
                  name: "姓名",
                  value: "董滢纲",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.5",
                  type: "text"
                }
              ]
            },
            {
              time: "1619179260000",
              timeFmt: "2021-04-23 20:01:00",
              items: [
                {
                  name: "姓名",
                  value: "dyg",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.8",
                  type: "text"
                }
              ]
            }
          ]
        },
        {
          time: "2021-04-23 22:00:00",
          oneLine: [
            {
              time: "1619186460000",
              timeFmt: "2021-04-23 22:01:00",
              items: [
                {
                  name: "姓名",
                  value: "董滢纲",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.5",
                  type: "text"
                }
              ]
            },
            {
              time: "1619186460000",
              timeFmt: "2021-04-23 22:01:00",
              items: [
                {
                  name: "姓名",
                  value: "dyg",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.8",
                  type: "text"
                }
              ]
            }
          ]
        },
        {
          time: "2021-04-24 00:00:00",
          oneLine: [
            {
              time: "1619193660000",
              timeFmt: "2021-04-24 00:01:00",
              items: [
                {
                  name: "姓名",
                  value: "董滢纲",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.5",
                  type: "text"
                }
              ]
            },
            {
              time: "1619193660000",
              timeFmt: "2021-04-24 00:01:00",
              items: [
                {
                  name: "姓名",
                  value: "dyg",
                  type: "text"
                },
                {
                  name: "年龄",
                  value: "24",
                  type: "text"
                },
                {
                  name: "费率",
                  value: "0.8",
                  type: "text"
                }
              ]
            }
          ]
        }
      ]
    }
  }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值