封装js函数:判断今天是否为节假日、用户信息脱敏、模糊搜索...持续更新


项目地址传送门

1. 返回指定时间段数组(年)
 

export function getDateArray (startYear,endYear){

    let DateArray = []

    let num = endYear-startYear
    
    for(let i=0;i<num;i++){
        startYear++
        DateArray.push(startYear)
    }

    return DateArray
}

 2. 获取近一周后的时间_可传具体时间

//返回指定时间,其后一周的时间数组
export function getWeek(date){

    let today = date||new Date();
    let weekArr = []
    for(let i=0;i<7;i++){
        let newDate = new Date(today.getTime()+i*1000*60*60*24)
        let year = newDate.getFullYear()
        let month = (parseInt(newDate.getMonth())+1)>9?(parseInt(newDate.getMonth())+1):"0"+(parseInt(newDate.getMonth())+1)
        let day = (newDate.getDate())>9?newDate.getDate():"0"+newDate.getDate()
        let fullDate = `${year}-${month}-${day}`
        weekArr.push(fullDate)
    }
    return weekArr
}

 3. 对电话,姓名,身份证脱敏

 

 class maskUtil {
    constructor() {

    }
    //字符串掩码
    stringMask(oriStr, frontLen, endLen) {
        let result = oriStr;
        if (oriStr == null || oriStr.length == 0) {
            return  "";
        }
        if ((endLen + frontLen) == oriStr.length && endLen == 1) {
            result = oriStr.substring(0, frontLen) + "*";
        }
        let len = oriStr.length - frontLen - endLen;
        let maskStars = "";
        for (let i = 0 ; i < len ; i++) {
            maskStars += "*";
        }
        result = oriStr.substring(0, frontLen) + maskStars + oriStr.substring(oriStr.length - endLen);
        return  result;
    }
    realNameMask (realName) {
        if (realName == null || realName == "") {
            return  "";
        } else if (realName.length == 2) {
            return this.stringMask(realName, 0 ,1);
        } else {
            return this.stringMask(realName, 0 ,2);
        }
    }
    //手机号掩码
    phoneMask (phone) {
        return this.stringMask(phone, 3, 2);
    }
    //身份证掩码
    idNumberMask (idNumber) {
        return this.stringMask(idNumber, 1 ,1);
    }
};

var maskUtils = new maskUtil()

export default maskUtils

效果展示

 4. 判断今天是否为节假日  项目地址传送门
 代码太长,我截图,具体看项目地址里面
 节假日判断有2条依据:
 1.是否为周末(有调休的情况)
 2.是否是每年的法定节假日

 后端做了一个接口,根据传入的时间段返回节假日数组(包含调休日期,通过type字段进行判断)
 返回数据如图
 
因为是公司的接口,这个地址我就不暴露了,需要返回这样日期数据,自己上网找下接口。
这个博客里面提供了接口 传送门
如果遇到跨域问题,我项目里面用webpack代理处理了跨域
代码截图


结果展示 没遇到调休情况

结果展示 遇到调休情况


具体项目展示

5. 模糊搜索    项目地址传送门

1.准备好要搜索的数组

2.要搜索的关键字

3.搜索关键字的key

具体代码 

export function search(searchKey,arr,arrKey){
    let backInfo = []
    let keys = []
    let haveKey
    arr.forEach(item =>{
        keys = Object.keys(item)
        haveKey = keys.some(item =>{
            return item = arrKey
        })
    })
    if(searchKey == ''){
        return backInfo
    }else if(Object.prototype.toString.call(arr) != '[object Array]' || arr.length == 0 ||             arrKey == ''|| !haveKey){
       return 'error'
    }else {
        arr.map(item =>{
            if(item[arrKey].search(searchKey)!=-1){
                backInfo.push(item)
            }
        })
        return backInfo
    }
}

结果展示

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值