美文网首页
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 常用功能

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

  • 常用js功能封装

    计算相同数组个数 多维数组根据对象进行排序

  • js-插件/框架

    1.swiper.js Swiper常用于移动端网站的内容触摸滑动 功能: 移动端轮播图 swiper.js...

  • jQuery一——概述及选择器

    一、jQuery的概述   jQurey是一款快速的、简介的JS框架(JS代码库),封装了JS的常用功能,是继Pr...

  • 「JS逆向」工具篇——Chrome DevTools

    [TOC] 说明 从JS逆向的角度去介绍DevTools常用的功能 不会事无巨细的介绍所有功能、和举例子 按照功能...

  • 【Node.js】global 全局变量

    global定义变量也是一个很常用到功能。 在同一个目录下创建了 a.js 和 b.js a.js b.js 在 ...

  • WEB 七

    用JS写一些常用的特效 1.倒计时功能 2.购物车功能的实现 代码比较繁琐 只贴了JS部分 比较重要的几个函数 ...

  • JS常用功能代码片段

    1字符串操作 2获取url上参数 3获取当前日期时间 4单个倒计时 多个定时器同步刷新 5个性化格式输出时间 6判...

  • 使用JS编写常用功能

    一。按钮点击显示隐藏 简化代码: 二。上一页下一页切换 三。悬浮切换图片 四。全选 五。上传图片验证

  • Vue.js 非父子组件之间的通讯

    Vue.js 非父子组件之间的通讯 在一些非父子组件会经常用到互相之间的通讯功能,Vue.js 有 vuex 状态...

网友评论

      本文标题:JS 常用功能

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