vue 封装一些常见功能

这个是请求封装的接口

REm

移动端适配引入rem 
在src里面创建assets-js

如下代码

//移动端的适配rem
function setRem() {
    // 这里直接在main里面导入这个文件  
    // 使用这个100px = 1rem 需要在页面里面进行转换
    var html = document.documentElement;
    var windowWidth = html.clientWidth;
    html.style.fontSize = windowWidth / 3.75 + 'px';
}
document.addEventListener('DOMContentLoaded', function () {
    setRem();
    window.onresize = function () {
        setRem();
    }
}, false);
然后在main,js直接导入这个文件 使用时
100px=1rem

创建功能封装

在utils里面-index.js

如下所示

/*
2021-12-06 Belongs to the work
PS 处理时间需要安装dayjs 
// cnpm install dayjs --save
https://www.jianshu.com/p/ed20fb23e658 dayjs官网
*/
import dayjs from "dayjs"
import { Dialog } from "vant";
// 直接写方法 然后引入这个方法
export function openDialogAlert(title, content, text,) {
    //提示弹框
    return Dialog.alert({
        title: title || '标题',
        message: content,
        confirmButtonText: text || '确认',
    }).then(() => {
    }).catch(() => {

    })
}
//生成随机数16位
 export function generateUUID() {
    var d = new Date().getTime()
    if (window.performance && typeof window.performance.now === 'function') {
        d += performance.now()
    }
    var uuid = 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
        var r = (d + Math.random() * 16) % 16 | 0
        d = Math.floor(d / 16)
        return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16)
    })
    return uuid
}
export function openDialogAlert1(title, content, text, text1,) {
    //确认弹框
    return new Promise(resovle => Dialog.confirm({
        title: title || '标题',
        message: content,
        confirmButtonText: text || '确认',
        cancelButtonText: text1 || '取消'
    }).then(resovle).catch(resovle))
}

const common = {
// 存 取 清除 token
    set(key, value) {
        localStorage.setItem(key, JSON.stringify(value));
        // localStorage.key = value;
        // localStorage[key] = value;
    },
    get(key) {
        return JSON.parse(localStorage.getItem(key));
    },
    remove(key) {
        localStorage.removeItem(key);
    },
    changeTitle(title) {
        // 这个是移动端的title 显示
        document.querySelector('title').text = title;
        if (window.ele_health_card) {
            window.ele_health_card.changeTitle(title);
        }
        if (window.webkit && (window.navigator.userAgent.indexOf('JKTNATIVE') > 0)) {
            this.callApp('changeTitle', title);
        }
    },
    changeTitleBar(params) {
        if (window.ele_health_card) {
            // 传0都透明,1都白色
            window.ele_health_card.changeTitleBar(params);
        }
        if (window.webkit && (window.navigator.userAgent.indexOf('JKTNATIVE') > 0)) {
            this.callApp('changeTitleBar', params);
        }
    },
}
// ======= 处理时间
export function formatTime (value, format = 'YYYY-MM-DD hh:mm:ss') {
    return dayjs(value).format(format)//时间戳转time YYYY-MM-DD hh:mm:ss
}
export function changeDateFormat(format = 'YYYYMMDD') {
    return dayjs(new Date()).format(format)//当前时间YYYY-MM-DD
}
export function changeMount(format = 'YYYYMM') {
    return dayjs(new Date()).format(format)//转化成月
}
export function getToday(format = 'YYYY年MM月DD日 hh:mm:ss') {
    return dayjs(new Date()).format(format)//当前时间YYYY-MM-DD hh:mm:ss
}
export function getYT(format = 'YYYY年MM月') {
    return dayjs(new Date()).format(format)//当前时间YYYY-MM-DD hh:mm:ss
}
export function backDayRange(format = 'YYYYMMDD') {
    return dayjs(new Date()).subtract(2, 'day').format(format)//倒退几天 减几天就是倒退几天
}
export function lastMonth(format = 'YYYYMM') {
    var currentdate = dayjs(new Date()).subtract(1, 'months').format(format)
    return currentdate//当前时间的前1个月
}
export function TimeMonth(format = 'YYYY-MM') {
    var currentdate = dayjs(new Date()).subtract(1, 'months').format(format)
    return currentdate//当前时间的前1个月
}
export function Yearmonth(format ='YYYY-MM-DD') {
    return dayjs(new Date()).subtract(2, 'day').format(format)
}
export function twoMonth(format = 'YYYYMM') {
    var currentdate = dayjs(new Date()).subtract(2, 'day').subtract(1, 'months').format(format)
    return currentdate//当前时间的前1个月
}
export function dayMonth(format ='YYYYMM') {
    var currentdate = dayjs(new Date()).subtract(3, 'day').format(format)
    return currentdate//3号之前显示的是上个月 3号之后显示这个月 
    //就是时间往前推3天就好  显示当月
}
export function timestamp() {
    return dayjs().unix()//时间转时间戳
}
// 接受0(星期日)到6(星期六)的数字
export function lastWeekDay(format = 'YYYYMMDD') {
    return dayjs().day(0).format(format)//定义到周日 上周日的时间
}
export function twoWeekDay(format = 'YYYYMMDD') {
    //定义到周日 每周二更新上周日 否则是上上周日 就是周2之前是上上周日 周2更新显示上周日 
    return dayjs(new Date()).subtract(3, 'day').day(0).format(format)
}
export function ThreeWeekDay(format = 'YYYYMMDD') {
    //定义到周日 每周二更新上周日 否则是上上周日 就是周2之前是上上周日 周2更新显示上周日 
    return dayjs(new Date()).day(0).format(format)
}
// ====== 保留小数
export function toDecimal2(x) {
    // 保留2位小数点 强制保留2位小数,如:2,会在2后面补上00.即2.00 
    // 这个是四舍五入的 3.245 变成3.25
    var f = parseFloat(x);
    if (isNaN(f)) {
        return false;
    }
    var f = Math.round(x * 100) / 100;
    var s = f.toString();
    var rs = s.indexOf('.');
    if (rs < 0) {
        rs = s.length;
        s += '.';
    }
    while (s.length <= rs + 2) {
        s += '0';
    }
    return s;
}
export function toFixed(num, decimal) {
    //  保留2位小数点 这个不是四舍五入 
    // 2个参数 第一个是数值 第二个是保留几位
    num = num.toString();
    let index = num.indexOf('.');
    if (index !== -1) {
        num = num.substring(0, decimal + index + 1)
    } else {
        num = num.substring(0)
    }
    return parseFloat(num).toFixed(decimal)
}
export function listFloat(num,n){   
    var f = parseFloat(num);
    if(isNaN(f)){
        return false;
    }   
    f = Math.round(num*Math.pow(10, n))/Math.pow(10, n); // n 幂   
    var s = f.toString();
    var rs = s.indexOf('.');
    //判定如果是整数,增加小数点再补0
    if(rs < 0){
        rs = s.length;
        s += '.'; 
    }
    while(s.length <= rs + n){
        s += '0';
    }
    return s;
}  
// ======= 小数转百分数 ======= 百分数转小数
export function toPercent(point) {
    // 小数转化为百分数  toFixed() 作用保留几位小数位 现在是保留2位
    var percent = Number(point * 100).toFixed(2);
    percent += "%";
    return percent;
}
export function toPoint(percent) {
    // 百分数转小数
    var str = percent.replace("%", "");
    str = str / 100;
    return str;
}
//校验身份证号
//身份证验证
export function validateSfz(rule, value, callback) {
    if (!value) {
      return callback(new Error('身份证号码不能为空'));
    }
    function validataCredentials(num) {
      var msg, boo; //  msg身份证验证友情提示,boo返回值
      var num = num.toUpperCase(); // 身份证为末尾可能是X
      //   身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,
      //   最后一位是校验位,可能为数字或字符X。
      const arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
      const arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
      var nTemp = 0,
        i;
      if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) {
        //  输入的身份证号长度不对,或者号码不符合规定;
        return [boo = false, msg = "输入的身份证号长度不对,或者号码不符合规定"];
      }
      //   校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
      //   下面分别分析出生日期和校验位
      var len, re;
      len = num.length;
      if (len == 15) {
        re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
        var arrSplit = num.match(re);
        //   检查生日日期是否正确
        var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]);
        var bGoodDay;
        bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
        if (!bGoodDay) {
          //   输入的身份证号里出生日期不对!
          return [boo = false, msg = "输入的身份证号里出生日期不对!"];
  
        } else {
          //   将15位身份证转成18位
          //   校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。   
          num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6);
          for (i = 0; i < 17; i++) {
            nTemp += num.substr(i, 1) * arrInt[i];
          }
          num += arrCh[nTemp % 11];
          return [boo = true, msg = num];
        }
      }
      if (len == 18) {
        re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
        var arrSplit = num.match(re);
        //  检查生日日期是否正确
        var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]);
        var bGoodDay;
        bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
        if (!bGoodDay) {
          //  输入的身份证号里出生日期不对! 
  
          return [boo = false, msg = " 输入的身份证号里出生日期不对"];
        } else {
          //  检验18位身份证的校验码是否正确。
          //  校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
          var valnum;
          for (i = 0; i < 17; i++) {
            nTemp += num.substr(i, 1) * arrInt[i];
          }
          valnum = arrCh[nTemp % 11];
          if (valnum != num.substr(17, 1)) {
            //  18位身份证的校验码不正确!
            return [boo = false, msg = "身份证的校验码不正确!"];
          }
          return [boo = true, msg = "验证成功"]
        }
      }
      return [boo = false, msg = "身份证的长度不正确!"];
    }
    setTimeout(() => {
      var res = validataCredentials(value);
      if (!res[0]) {
        callback(new Error(res[1]));
      } else {
        callback();
      }
    }, 200);
  };
/*
 * @Author: yangwenyang
 * @Date: 2022-04-06
 */
/*
*截取url?后的参数
*/ 
export function param2Obj(url) {
    url = url || location.href;
    const search = url.split("?")[1];
    if (!search) {
        return {};
    }
    return JSON.parse(
        '{"' +
        decodeURIComponent(search)
            .replace(/[!~`\\'()#$%^*:;"<>?]/g, "")
            .replace(/"/g, '\\"')
            .replace(/&/g, '","')
            .replace(/=/g, '":"') +
        '"}'
    );
}
/**
 * 获取链接上拼接参数
 */
 export const getUrlString = (str) => {
    let LocString = String(window.document.location.href);
    let rs = new RegExp("(^|)" + str + "=([^&]*)(&|$)", "gi").exec(LocString),
        tmp;
    if ((tmp = rs)) return decodeURI(tmp[2]);
    return null;
};
/**
 * 存储 localStorage
 */
export const setLocalStore = (name, content) => {
    if (!name) return;
    if (typeof content !== "string") {
        content = JSON.stringify(content);
    }
    window.localStorage.setItem(name, content);
};
/**
 * 获取 localStorage
 */
export const getLocalStore = (name) => {
    if (!name) return;
    return window.localStorage.getItem(name);
};
/**
 * 删除localStorage
 */
 export const removeStore = (name) => {
    if (!name) return;
    window.localStorage.removeItem(name);
};
/**
 * 存储 sessionStorage
 */
export const setSessionStore = (name, content) => {
    if (!name) return;
    if (typeof content !== "string") {
        content = JSON.stringify(content);
    }
    window.sessionStorage.setItem(name, content);
};
/**
 * 获取 sessionStorage
 */
export const getSessionStore = (name) => {
    if (!name) return;
    return window.sessionStorage.getItem(name);
};

/*
*渠道设备
*/
export const browser = {
    versions: (function () {
        var u = navigator.userAgent;
        return {
            trident: u.indexOf("Trident") > -1, //IE内核
            presto: u.indexOf("Presto") > -1, //opera内核
            webKit: u.indexOf("AppleWebKit") > -1, //苹果、谷歌内核
            gecko: u.indexOf("Gecko") > -1 && u.indexOf("KHTML") == -1, //火狐内核
            mobile: !!u.match(/AppleWebKit.*Mobile.*/) || !!u.match(/AppleWebKit/), //是否为移动终端
            ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
            android: u.indexOf("Android") > -1 || u.indexOf("Linux") > -1, //android终端或者uc浏览器
            iPhone: u.indexOf("iPhone") > -1 || u.indexOf("Mac") > -1, //是否为iPhone或者QQHD浏览器
            iPad: u.indexOf("iPad") > -1, //是否iPad
            webApp: u.indexOf("Safari") == -1, //是否web应该程序,没有头部与底部
            wechat: u.toLowerCase().indexOf("micromessenger") !== -1, //微信打开
        };
    })(),
};

// 获取日期 一周之前
export const getWeekAgeTime = () => {
    var end = new Date();
    var year = end.getFullYear();
    var month = end.getMonth() + 1; //0-11表示1-12月
    var day = end.getDate();
    var dateObj = {};
    dateObj.end = year + "/" + month + "/" + day;
    if (day - 7 <= 0) {
        //若是在当月7日以前
        var startMonthDay = new Date(year, parseInt(month) - 1, 0).getDate(); //1周前所在月的总天数
        if (month - 1 <= 0) {
            //若是在当年的1月份
            dateObj.start = year - 1 + "/" + 12 + "/" + (31 - (7 - day));
        } else {
            dateObj.start =
                year + "/" + (month - 1) + "/" + (startMonthDay - (7 - day));
        }
    } else {
        dateObj.start = year + "/" + month + "/" + (day - 7);
    }
    return SetFormatTime("yyyy-MM-dd", new Date(dateObj.start));
};
// 获取时间  一个月之前
export const getMonthAgeTime = () => {
    var end = new Date();
    var year = end.getFullYear();
    var month = end.getMonth() + 1; //0-11表示1-12月
    var day = end.getDate();
    var dateObj = {};
    dateObj.end = year + "/" + month + "/" + day;
    var endMonthDay = new Date(year, month, 0).getDate(); //当前月的总天数
    if (month - 1 <= 0) {
        //如果是1月,年数往前推一年<br>
        dateObj.start = year - 1 + "/" + 12 + "/" + day;
    } else {
        var startMonthDay = new Date(year, parseInt(month) - 1, 0).getDate();
        if (startMonthDay < day) {
            //1个月前所在月的总天数小于现在的天日期
            if (day < endMonthDay) {
                //当前天日期小于当前月总天数
                dateObj.start =
                    year +
                    "/" +
                    (month - 1) +
                    "/" +
                    (startMonthDay - (endMonthDay - day));
            } else {
                dateObj.start = year + "/" + (month - 1) + "/" + startMonthDay;
            }
        } else {
            dateObj.start = year + "/" + (month - 1) + "/" + day;
        }
    }
    return SetFormatTime("yyyy-MM-dd", new Date(dateObj.start));
};
// 三个月之前
export const getThreeMonthAgeTime = () => {
    var end = new Date();
    var year = end.getFullYear();
    var month = end.getMonth() + 1; //0-11表示1-12月
    var day = end.getDate();
    var dateObj = {};
    dateObj.end = year + "/" + month + "/" + day;
    var endMonthDay = new Date(year, month, 0).getDate(); //当前月的总天数
    var start3MonthDay = "";
    if (month - 3 <= 0) {
        //如果是1、2、3月,年数往前推一年
        start3MonthDay = new Date(
            year - 1,
            12 - (3 - parseInt(month)),
            0
        ).getDate(); //3个月前所在月的总天数
        if (start3MonthDay < day) {
            //3个月前所在月的总天数小于现在的天日期
            dateObj.start =
                year - 1 + "/" + (12 - (3 - month)) + "/" + start3MonthDay;
        } else {
            dateObj.start = year - 1 + "/" + (12 - (3 - month)) + "/" + day;
        }
    } else {
        start3MonthDay = new Date(year, parseInt(month) - 3, 0).getDate(); //3个月前所在月的总天数
        if (start3MonthDay < day) {
            //3个月前所在月的总天数小于现在的天日期
            if (day < endMonthDay) {
                //当前天日期小于当前月总天数,2月份比较特殊的月份
                dateObj.start =
                    year +
                    "/" +
                    (month - 3) +
                    "/" +
                    (start3MonthDay - (endMonthDay - day));
            } else {
                dateObj.start = year + "/" + (month - 3) + "/" + start3MonthDay;
            }
        } else {
            dateObj.start = year + "/" + (month - 3) + "/" + day;
        }
    }
    return SetFormatTime("yyyy-MM-dd", new Date(dateObj.start));
};
// 格式化日期
export const SetFormatTime = (timeType, time = new Date()) => {
    var t = new Date(time);
    var format = timeType; //timeType =>yyyy-MM-dd HH:mm:ss
    var tf = function (i) {
        return (i < 10 ? "0" : "") + i;
    };
    return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function (a) {
        switch (a) {
            case "yyyy":
                return tf(t.getFullYear());
            // break;
            case "MM":
                return tf(t.getMonth() + 1);
            // break;
            case "mm":
                return tf(t.getMinutes());
            // break;
            case "dd":
                return tf(t.getDate());
            // break;
            case "HH":
                return tf(t.getHours());
            // break;
            case "ss":
                return tf(t.getSeconds());
            // break;
        }
    });
};
// 身份证脱敏
export const desIdCard = (str) => {
    let id = str.substr(0, 3) + "***********" + str.substr(+str.length - 4, 4);
    return id;
};
// 手机号脱敏
export const desmobile = (str) => {
    let id = str.substr(0, 3) + "****" + str.substr(+str.length - 4, 4);
    return id;
};
// 姓名脱敏
export const dedName = (str) => {
    if (str.length == 2) {
        let name = str.substring(0, 1) + "*"; //截取name 字符串截取第一个字符,
        return name;
    } else if (str.length == 3) {
        let name = str.substring(0, 1) + "*" + str.substring(2, 3); //截取第一个和第三个字符
        return name;
    } else if (str.length > 3) {
        let name = str.substring(0, 1) + "*" + "*" + str.substring(3, str.length); //截取第一个和大于第4个字符
        return name;
    }
};
// 金额变百分数保留小数点2位
export const getMoney = (str) => {
    let money = (Number(str) / 100).toFixed(2);
    return money;
};
/*
num为个数时前面加0显示 
如1 显示01
*/
export const formatNumber = (n) => {
    const str = n.toString();
    return str[1] ? str : `0${str}`;
};
/**
 * 格式化日期 年月日
 */
export const formatTime2 = (date) => {
    const year = date.getFullYear();
    const month = date.getMonth() + 1;
    const day = date.getDate();
    return `${year}-${month > 9 ? month : "0" + month}-${day > 9 ? day : "0" + day
        }`;
};
// base64
export const getBase64 = (img, callback) => {
    const reader = new FileReader()
    reader.addEventListener('load', () => callback(reader.result))
    reader.readAsDataURL(img)
}
/*坐标转换*/
//var x_PI = (3.14159265358979324 * 3000.0) / 180.0;
// var PI = 3.1415926535897932384626;
// var a = 6378245.0;
// var ee = 0.00669342162296594323;
export function gcj02tobd09(lng, lat) {
    var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);
    var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);
    var bd_lng = z * Math.cos(theta) + 0.0065;
    var bd_lat = z * Math.sin(theta) + 0.006;
    return [bd_lng, bd_lat];
}

export default common

然后在使用的时候直接引用

比如

在这里插入图片描述
找到对于的功能进行调用

创建封装功能1

验证封装

import Vue from "vue";
import { Toast } from "vant";
Vue.use(Toast);
/**
 * 手机号验证
 */
export const mobileValidate = (mobile) => {
  const newReg = /^(((13[0-9]{1})|(14[0,1,4,5,6,7,8,9]{1})|(17[0,1,2,3,4,5,6,7,8]{1})|(15[0,1,2,3,5,6,7,8,9]{1})|(18[0-9]{1})|(19[0,1,2,3,5,6,7,8,9]{1})|(16[2,5,6,7]{1}))+\d{8})$/;
  if (mobile) {
    if (newReg.test(mobile)) {
      return true;
    } else {
      Toast("请输入正确的手机号码");
      return false;
    }
  } else {
    Toast("手机号不能为空");
    return false;
  }
};

/**
 * 登录密码验证8-16数字字母组合
 */
export const pwdValidate = (pwd) => {
  const newReg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/;
  if (pwd) {
    if (pwd.length < 8) {
      Toast("密码长度为8-16位");
      return false;
    } else {
      if (newReg.test(pwd)) {
        return true;
      } else {
        Toast("密码为8-16位的数字字母组合");
        return false;
      }
    }
  } else {
    Toast("请输入密码");
    return false;
  }
};

/**
 * 短信验证码验证
 */
export const codeValidate = (code) => {
  if (code) {
    if (code.length < 6) {
      Toast("请输入6位验证码");
      return false;
    } else {
      return true;
    }
  } else {
    Toast("请输入验证码");
    return false;
  }
};

/**
 * 姓名验证
 */
export const nameValidate = (name) => {
  const newReg = new RegExp(
    "[`~!@#%$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]"
  );
  if (name) {
    if (newReg.test(name)) {
      Toast("不能输入特殊字符");
      return false;
    } else {
      return true;
    }
  } else {
    Toast("请输入姓名");
    return false;
  }
};

/**
 * 身份证号验证
 */
export const certNoValidate = (certNo) => {
  if (certNo) {
    // 加权因子
    const weight_factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
    // 校验码
    const check_code = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];
    let code = certNo + "";
    let seventeen = code.substring(0, 17);
    // 判断最后一位校验码是否正确
    let arr = seventeen.split("");
    let len = arr.length;
    let num = 0;
    for (let i = 0; i < len; i++) {
      num = num + arr[i] * weight_factor[i];
    }
    // 获取余数
    let resisue = num % 11;
    let last_no = check_code[resisue];
    // 格式的正则
    // 正则思路
    /*
    第一位不可能是0
    第二位到第六位可以是0-9
    第七位到第十位是年份,所以七八位为19或者20
    十一位和十二位是月份,这两位是01-12之间的数值
    十三位和十四位是日期,是从01-31之间的数值
    十五,十六,十七都是数字0-9
    十八位可能是数字0-9,也可能是X
    */
    const newReg = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/;
    // 判断格式是否正确
    let format = newReg.test(certNo);
    // 返回验证结果,校验码和格式同时正确才算是合法的身份证号码
    if (last_no && format) {
      return true;
    } else {
      Toast("请输入正确合法的身份证号码");
      return false;
    }
  } else {
    Toast("请输入身份证号码");
    return false;
  }
};

/**
 * 卡号验证
 */
export const cardNoValidate = (cardNo) => {
  const newReg = /^\d{17}$/;
  if (cardNo) {
    if (newReg.test(cardNo)) {
      return true;
    } else {
      Toast("卡号有误,请核对您的市民卡卡号");
      return false;
    }
  } else {
    Toast("请输入您的市民卡卡号");
    return false;
  }
};

export default {
  //   手机号校验
  phoneCheck(params) {
    if (/^1[34578]\d{9}$/.test(params)) {
      return "success";
    } else {
      return "warning";
    }
  },
  // 邮箱校验
  emailCheck(params) {
    if (/^[a-z0-9_]{2,20}@[a-z0-9]{2,10}\.[a-z]{2,6}$/.test(params)) {
      return "success";
    } else {
      return "warning";
    }
  },
  // 生日校验
  birthdayCheck(params) {
    if (/^\d{4}-\d{1,2}-\d{1,2}$/.test(params)) {
      if (params > "1900-00-00" && params < "2019-12-31") {
        return "success";
      } else {
        return "warning";
      }
    } else {
      return "warning";
    }
  },
  // 昵称校验
  nicknameCheck(params) {
    if (params && params.trim()) {
      if (params.length >= 1 && params.length <= 10) {
        return "success";
      } else {
        return "warning";
      }
    } else {
      return "warning";
    }
  },
  // 个签校验
  introductionCheck(params) {
    if (params && params.trim()) {
      return "success";
    } else {
      return "warning";
    }
  },
  // 用户名校验
  usernameCheck(params) {
    if (params && params.trim()) {
      if (params.length >= 1 && params.length <= 20) {
        return "success";
      } else {
        return "warning";
      }
    } else {
      return "warning";
    }
  },
  // 密码校验
  passwordCheck(pwd, repwd) {
    if (pwd && pwd.trim() && repwd && repwd.trim()) {
      if (pwd === repwd) {
        if (pwd.length >= 6 && pwd.length <= 16) {
          return "success";
        } else {
          return "warning";
        }
      } else {
        return "error";
      }
    } else {
      return "warning";
    }
  }
}

创建封装功能2

加密封装

// npm install crypto-js --save 
const CryptoJS = require('crypto-js');
const key = CryptoJS.enc.Utf8.parse("xxxxxx");  //十六位十六进制数作为密钥
const iv = CryptoJS.enc.Utf8.parse('xxxxxx');   //十六位十六进制数作为密钥偏移量
//解密方法
function Decrypt(word) {
    // if (!word) return
    let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
    let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
    let decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
    let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
    return decryptedStr.toString();
}
//加密方法
function Encrypt(word) {
    if (!word) return
    let srcs = CryptoJS.enc.Utf8.parse(word);
    let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
    return encrypted.ciphertext.toString().toUpperCase();
}
export {
    Decrypt,
    Encrypt
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值