美文网首页
js各类方法记录

js各类方法记录

作者: MiSiTeWang | 来源:发表于2021-01-19 15:03 被阅读0次

    获取url指定参数

    const getquerys = {
        oa_open_id: "",
        payload: "",
    }
    
    function getquery(queryName) {
        var reg = new RegExp("(^|&)" + queryName + "=([^&]*)(&|$)", "i");
        var r = window.location.search.substr(1).match(reg);
        if (r != null) {
            return decodeURI(r[2]);
        } else {
            return null;
        }
    }
    getquerys.oa_open_id = getquery("oa_open_id");
    getquerys.payload = getquery("payload");
    export default getquerys;
    
    

    删除url指定参数

    //removeURLParameter(地址,'参数名前缀')
    removeURLParameter(url, parameter) {
                var urlparts = url.split("?");
                if (urlparts.length >= 2) {
                    //参数名前缀
                    var prefix = encodeURIComponent(parameter) + "=";
                    var pars = urlparts[1].split(/[&;]/g);
    
                    //循环查找匹配参数
                    for (var i = pars.length; i-- > 0; ) {
                        if (pars[i].lastIndexOf(prefix, 0) !== -1) {
                            //存在则删除
                            pars.splice(i, 1);
                        }
                    }
    
                    return (
                        urlparts[0] + (pars.length > 0 ? "?" + pars.join("&") : "")
                    );
                }
                return url;
            },
    

    清除对象中值为空的属性

    //这个方法不会影响原来的对象,而是返回一个新对象
    function filterParams(obj) {
        var _newPar = {};
        for (var key in obj) {
            if ((obj[key] === 0 ||obj[key] === false|| obj[key]) && obj[key].toString().replace(/(^\s*)|(\s*$)/g, '') !== '') {
                _newPar[key] = obj[key];
            }
        }
        return _newPar;
    }
    filterParams({a:"",b:null,c:"010",d:123})       //{c: "010", d: 123}
    

    根据数组中对象的某个属性值进行去重

    var arr = [
            {
                from: '张三',
                to: '河南'
            },
            {
                from: '王二',
                to: '阿里'
            },
            {
                from: '王二',
                to: '杭州'
            },
            {
                from: '王二',
                to: '山东'
            },
        ]
        const res = new Map();
        arr = arr.filter((a) => !res.has(a.from) && res.set(a.from, 1))
        console.log(arr);
    

    url操作

    getquery(queryName) {
       var reg = new RegExp("(^|&)" + queryName + "=([^&]*)(&|$)", "i");
       var r = window.location.search.substr(1).match(reg);
       if (r != null) {
         return decodeURI(r[2]);
       } else {
         return null;
       }
    },
    

    数组去重

    function unique(arr) {
      return Array.from(new Set(arr))
    }
    

    正则验证

    //手机
    const phone = ((data) => {
      var myreg = /^1[3456789]\d{9}$/
      if (myreg.test(data)) {
        return true
      } else {
        return false
      }
    })
    
    //邮箱
      /^[A-Za-z0-9]+([_\.][A-Za-z0-9]+)*@([A-Za-z0-9\-]+\.)+[A-Za-z]{2,6}$/;
    
    //校验身份证号码
      //15位:
      ^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$
      //18位:
      ^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$
    
    //校验日期(“yyyy-mm-dd“ 格式的日期校验,已考虑平闰年。
      ^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$
    

    随机获取布尔值(true/false)

    const randomBoolean = () => Math.random() >= 0.5;
    console.log(randomBoolean());
    // Result: a 50/50 change on returning true of false
    

    判断给的日期是否为工作日

    const isWeekday = (date) => date.getDay() % 6 !== 0;
    console.log(isWeekday(new Date(2021, 0, 11)));
    // Result: true (Monday)
    console.log(isWeekday(new Date(2021, 0, 10)));
    // Result: false (Sunday)
    

    反转字符串

    const reverse = str => str.split('').reverse().join('');
    reverse('hello world');     
    // Result: 'dlrow olleh'
    

    判断当前选项卡是否在视图/焦点中

    const isBrowserTabInView = () => document.hidden;
    isBrowserTabInView();
    // Result: returns true or false depending on if tab is in view / focus
    

    判断数字是偶数还是奇数

    const isEven = num => num % 2 === 0;
    console.log(isEven(2));
    // Result: true
    console.log(isEven(3));
    // Result: false
    

    从日期获取时间

    const timeFromDate = date => date.toTimeString().slice(0, 8);
    console.log(timeFromDate(new Date(2021, 0, 10, 17, 30, 0))); 
    // Result: "17:30:00"
    console.log(timeFromDate(new Date()));
    // Result: will log the current time
    

    将数字四舍五入到固定的小数点

    const toFixed = (n, fixed) => ~~(Math.pow(10, fixed) * n) / Math.pow(10, fixed);
    // Examples
    toFixed(25.198726354, 1);       // 25.1
    toFixed(25.198726354, 2);       // 25.19
    toFixed(25.198726354, 3);       // 25.198
    toFixed(25.198726354, 4);       // 25.1987
    toFixed(25.198726354, 5);       // 25.19872
    toFixed(25.198726354, 6);       // 25.198726
    

    检查元素当前是否处于焦点

    const elementIsInFocus = (el) => (el === document.activeElement);
    elementIsInFocus(anyElement)
    // Result: will return true if in focus, false if not in focus
    

    滚动到页面顶部

    const goToTop = () => window.scrollTo(0, 0);
    goToTop();
    // Result: will scroll the browser to the top of the page
    

    获取参数的平均值

    const average = (...args) => args.reduce((a, b) => a + b) / args.length;
    average(1, 2, 3, 4);
    // Result: 2.5
    

    相关文章

      网友评论

          本文标题:js各类方法记录

          本文链接:https://www.haomeiwen.com/subject/seoqzktx.html