美文网首页
JS 常用功能

JS 常用功能

作者: _朽木 | 来源:发表于2018-04-11 11:04 被阅读0次

    大写每个单词的首字母
    使用replace()匹配每个单词的第一个字符,并使用toUpperCase()来将其大写

    function capitalizeEveryWord(str) {
       str = str.replace(/\b[a-z]/g, char => char.toUpperCase());
       return str;
    }
    

    计数数组中值的出现次数
    每次遇到数组中的特定值时,使用reduce()来递增计数器。

    function countOccurrences(arr,value) {
       var count = arr.reduce((a, v) => v === value ? a + 1 : a + 0, 0);
       return count;
    }
    

    转义正则表达式
    使用replace()来转义特殊字符。

    function escapeRegExp(str) {
        str = str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
        return str;
    }
    

    斐波那契数组生成器
    创建一个特定长度的空数组,初始化前两个值(0和1)。使用Array.reduce()向数组中添加值,后面的一个数等于前面两个数相加之和(前两个除外)。

    function fibonacci(n) {
       n = Array(n).fill(0).reduce((acc, val, i) => acc.concat(i > 1 ? acc[i - 1] + acc[i - 2] : i), []);
       return n;
    }
    

    斐波那契数组生成器
    创建一个特定长度的空数组,初始化前两个值(0和1)。使用Array.reduce()向数组中添加值,后面的一个数等于前面两个数相加之和(前两个除外)。

    function fibonacci(n) {
       n = Array(n).fill(0).reduce((acc, val, i) => acc.concat(i > 1 ? acc[i - 1] + acc[i - 2] : i), []);
      return n;
    }
    

    从数组中获取最大值
    使用Math.max()与spread运算符(...)结合得到数组中的最大值。

    function arrayMax(arr) {
       s = Math.max(...arr);
       return s;
    }
    

    从数组中获取最小值
    使用Math.min()与spread运算符(...)结合得到数组中的最小值。

    function arrayMin(arr) {
       s = Math.min(...arr);
       return s;
    }
    

    范围内的随机整数
    使用Math.random()生成一个随机数并将其映射到所需的范围,使用Math.floor()使其成为一个整数。

    function randomIntegerInRange(min,max) {
      var s = Math.floor(Math.random() * (max - min + 1)) + min;
       return s;  
    }
    

    重定向到URL
    使用window.location.href或window.location.replace()重定向到url。 传递第二个参数来模拟链接点击(true - default)或HTTP重定向(false)。

    function redirect(url,asLink) {
       var u = asLink ? window.location.href = url : window.location.replace(url);
      return u;
    }
    

    滚动到顶部
    使用document.documentElement.scrollTop或document.body.scrollTop获取到顶部的距离。
    从顶部滚动一小部分距离。
    使用window.requestAnimationFrame()来滚动。

    function scrollToTop() {
      var c = document.documentElement.scrollTop || document.body.scrollTop;
      if (c > 0) {
        window.requestAnimationFrame(scrollToTop);
        window.scrollTo(0, c - c / 8);
        }
      }
    

    URL参数
    使用match() 与适当的正则表达式来获得所有键值对,适当的map() 。使用Object.assign()和spread运算符(...)将所有键值对组合到一个对象中,将location.search作为参数传递给当前url。

    function getUrlParameters(url) {
      var s= url.match(/([^?=&]+)(=([^&]*))/g).reduce(
        (a, v) => (a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1), a), {}
      );
     return s;
    }
    

    验证数字
    使用!isNaN和parseFloat()来检查参数是否是一个数字,使用isFinite()来检查数字是否是有限的。

    function validateNumber(n) {
      var s = !isNaN(parseFloat(n)) && isFinite(n) && Number(n) == n;
      return s;
    }
    

    验证是否为邮箱

    function isMail(mail) {
        var search_str = /^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/;
        if (!search_str.test(mail)) {
            return "请输入正确的邮箱!";
        }
        return true;
    }
    

    是否为手机号

    function isTel(phone) {
        if (phone.search(/(^1[3|4|5|7|8]\d{9}$)|(^09\d{8}$)/) != -1) {
            return true;
        }
        else {
            return "手机号格式错误";
        }
    }
    

    是否为身份证号

    function isCardID(sId) {
        var aCity = { 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: "国外" }
    
        var iSum = 0;
        var info = "";
        if (!/^\d{17}(\d|x)$/i.test(sId)) {
            return "你输入的身份证长度或格式错误";
        }
        sId = sId.replace(/x$/i, "a");
        if (aCity[parseInt(sId.substr(0, 2))] == null) {
            return "你的身份证地区非法";
        }
        sBirthday = sId.substr(6, 4) + "-" + Number(sId.substr(10, 2)) + "-" + Number(sId.substr(12, 2));
        var d = new Date(sBirthday.replace(/-/g, "/"));
        if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())) {
            return "身份证上的出生日期非法";
        }
        for (var i = 17; i >= 0; i--) {
            iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11);
        }
        if (iSum % 11 != 1) {
            return "你输入的身份证号非法";
        }
        return true;
    }

    相关文章

      网友评论

          本文标题:JS 常用功能

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