zl程序教程

您现在的位置是:首页 >  后端

当前栏目

JS常用功能代码片段

JS代码 功能 常用 片段
2023-06-13 09:15:27 时间
1字符串操作

var a="aaabbbccc";  
var b="la,la,la"; 

var concat=a.concat(b);              //将a,b合并成同一个字符串
var split=b.split(',');              //将b切割成数组
var index=a.indexOf('b');             //第一个b在数组中的位置
var lastIndex=a.lastIndexOf('b');     //最后一个b在数组中的位置
var charAt=a.charAt(3);               //字符串中的第四个字符
var substring=a.substring(3,6);   //截取字符串的起始位置和结束位置
var  substr=a.substr(3,6);         //截取字符串的起始位置和长度 
var slice=a.slice(3,6);           //同substring,负数有区别
var low=a.toLowerCase();            //小写
var upp=a.toUpperCase();        // 并不会改变a本身的大小写
2获取url上参数
  //获取url参数方法
   function getQueryString(name) { //取url上的id
      var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
      var r = window.location.search.substr(1).match(reg);
      if (r != null) return unescape(r[2]);
      return null;
    }
  // 使用取url上的id
  var courseId = getQueryString("id");
3获取当前日期时间
function getCurrentDate() {
  var timeStr = '-';
  var curDate = new Date();
  var curYear = curDate.getFullYear(); //获取完整的年份(4位,1970-????)
  var curMonth = curDate.getMonth() + 1; //获取当前月份(0-11,0代表1月)
  var curDay = curDate.getDate(); //获取当前日(1-31)
  var curWeekDay = curDate.getDay(); //获取当前星期X(0-6,0代表星期天)
  var curHour = curDate.getHours(); //获取当前小时数(0-23)
  var curMinute = curDate.getMinutes(); // 获取当前分钟数(0-59)
  var curSec = curDate.getSeconds(); //获取当前秒数(0-59)
  var Current = curYear + timeStr + curMonth + timeStr + curDay + ' ' + curHour + ':' + curMinute + ':' + curSec;
  console.log(Current);
  return Current;
}
getCurrentDate()     //输出:2019-12-19 16:39:22
4单个倒计时
function TimeDown(end) {  //获取剩余时间   参数即为将截至的时间,格式为:xxxx-xx-xx xx:xx:xx
  let nowtime = new Date().getTime(); // 当前时间 毫秒数
  let endTime = Date.parse(new Date(end.replace(/-/g, "/"))); //结束时间  毫秒数
  let totalSeconds = (endTime - nowtime) / 1000; // 结束时间-当前时间 = 剩余多少时间秒
  let day = parseInt(totalSeconds / 3600 / 24); //天
  let hour = parseInt((totalSeconds / 3600) % 24); //时
  let minute = parseInt((totalSeconds / 60) % 60); //分
  let second = parseInt(totalSeconds % 60); //秒
  let residueTime ="倒计时:" + day + "天 " + hour + "时 " + minute + "分 " + second + "秒";
  console.log(residueTime);
  if (totalSeconds 

多个定时器同步刷新

5个性化格式输出时间
/*
1、= 1min && = 60min && = 1day && = 1year, 显示具体日期“XXXX年XX月XX日 XX:XX”
 */
function timeFormat(time) {
  var date = new Date(time),
    curDate = new Date(),
    year = date.getFullYear(),
    month = date.getMonth() + 1,
    day = date.getDate(),
    hour = date.getHours(),
    minute = date.getMinutes(),
    seconds = date.getSeconds(),
    curYear = curDate.getFullYear(),
    curHour = curDate.getHours(),
    timeStr;

  if (year  curHour) {
      timeStr = month + '月' + day + '日 ' + hour + ':' + minute + ':' + seconds;
    } else if (pastH >= 1) {
      timeStr = '今天 ' + hour + ':' + minute + ':' + seconds;
    } else {
      var pastM = curDate.getMinutes() - minute;
      console.log(curDate.getMinutes());
      console.log(minute);
      console.log(pastM);
      if (pastM > 1) {
        timeStr = pastM + '分钟前';
      } else {
        timeStr = '刚刚';
      }
    }
  }
  return timeStr;
}
timeFormat('2019-12-18 15:41:22')
6判断是否移动设备访问
function isMobileUserAgent() {
  return (/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase()));
}
isMobileUserAgent()  //输出:true  ||  false
7判断是否苹果移动设备访问
function isAppleMobileDevice() {
  return (/iphone|ipod|ipad|Macintosh/i.test(navigator.userAgent.toLowerCase()));
}
isAppleMobileDevice()  //输出:true  ||  false
8判断是否安卓移动设备访问
function isAppleMobileDevice() {
  return (/iphone|ipod|ipad|Macintosh/i.test(navigator.userAgent.toLowerCase()));
}
isAppleMobileDevice()  //输出:true  ||  false
9判断是否是微信环境访问
function isWeixinEnvironment() {
  var ua = navigator.userAgent.toLowerCase();
  var isWeixin = ua.indexOf('micromessenger') != -1;
  return isWeixin
}
isWeixinEnvironment()  //输出:true  ||  false
10判断是否为网址
function IsURL(strUrl) {
  var regular = /^b(((https?|ftp)://)?[-a-z0-9]+(.[-a-z0-9]+)*.(?:com|edu|gov|int|mil|net|org|biz|info|name|museum|asia|coop|aero|[a-z][a-z]|((25[0-5])|(2[0-4]d)|(1dd)|([1-9]d)|d))b(/[-a-z0-9_:@&?=+,.!/~%$]*)?)$/i
  if (regular.test(strUrl)) {
    return true;
  } else {
    return false;
  }
}
IsURL('https://www.baidu.com')  //输出  true
IsURL('htts://www.baidu.com')  //输出  false
11判断变量是否为空值
/**
 * 判断变量是否空值
 * undefined, null, '', false, 0, [], {} 均返回true,否则返回false
 */
function empty(v){
  switch (typeof v){
    case 'undefined' : return true;
    case 'string'    : if(v.trim().length == 0) return true; break;
    case 'boolean'   : if(!v) return true; break;
    case 'number'    : if(0 === v) return true; break;
    case 'object'    : 
      if(null === v) return true;
      if(undefined !== v.length && v.length==0) return true;
      for(var k in v){return false;} return true;
      break;
  }
  return false;
}
12获取窗体可见范围的宽与高
function getViewSize() {
    var de = document.documentElement;
    var db = document.body;
    var viewW = de.clientWidth == 0 ?  db.clientWidth : de.clientWidth;
    var viewH = de.clientHeight == 0 ?  db.clientHeight : de.clientHeight;
    return Array(viewW ,viewH);
}
13范围内的随机整数

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

function randomIntegerInRange (min,max){
    return Math.floor(Math.random() * (max - min + 1)) + min
}
// randomIntegerInRange(0, 5) -> 2
14范围内的随机数

使用Math.random()生成一个随机值,使用乘法将其映射到所需的范围。

function randomInRange (min,max){
    return (min, max) => Math.random() * (max - min) + min
}
// randomInRange(2,10) -> 6.0211363285087005
15base64解码
function base64_decode(data){
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,ac = 0,dec = "",tmp_arr = [];
    if (!data) { return data; }
    data += '';
    do { 
        h1 = b64.indexOf(data.charAt(i++));
        h2 = b64.indexOf(data.charAt(i++));
        h3 = b64.indexOf(data.charAt(i++));
        h4 = b64.indexOf(data.charAt(i++));
        bits = h1 > 16 & 0xff;
        o2 = bits >> 8 & 0xff;
        o3 = bits & 0xff;
        if (h3 == 64) {
            tmp_arr[ac++] = String.fromCharCode(o1);
        } else if (h4 == 64) {
            tmp_arr[ac++] = String.fromCharCode(o1, o2);
        } else {
            tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);
        }
    } while (i 
16数字转换为金额大写
function transform(tranvalue) {
  try {
    var i = 1;
    var dw2 = new Array("", "万", "亿"); //大单位
    var dw1 = new Array("拾", "佰", "仟"); //小单位
    var dw = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); //整数部分用
    //以下是小写转换成大写显示在合计大写的文本框中
    //分离整数与小数
    var source = splits(tranvalue);
    var num = source[0];
    var dig = source[1];
    //转换整数部分
    var k1 = 0; //计小单位
    var k2 = 0; //计大单位
    var sum = 0;
    var str = "";
    var len = source[0].length; //整数的长度
    for (i = 1; i = 0) {
        bn = source[0].charAt(len - i - 1); //取得某个位数前一位上的数字
      }
      sum = sum + Number(n);
      if (sum != 0) {
        str = dw[Number(n)].concat(str); //取得该数字对应的大写数字,并插入到str字符串的前面
        if (n == '0') sum = 0;
      }
      if (len - i - 1 >= 0) { //在数字范围内
        if (k1 != 3) { //加小单位
          if (bn != 0) {
            str = dw1[k1].concat(str);
          }
          k1++;
        } else { //不加小单位,加大单位
          k1 = 0;
          var temp = str.charAt(0);
          if (temp == "万" || temp == "亿") //若大单位前没有数字则舍去大单位
            str = str.substr(1, str.length - 1);
          str = dw2[k2].concat(str);
          sum = 0;
        }
      }
      if (k1 == 3) //小单位到千则大单位进一
      {
        k2++;
      }
    }
    //转换小数部分
    var strdig = "";
    console.log(num);
    console.log(dig);
    if (dig != "") {
      var n = dig.charAt(0);
      if (n != 0) {
        strdig += dw[Number(n)] + "角"; //加数字
      }
      var n = dig.charAt(1);
      if (n != 0) {
        strdig += dw[Number(n)] + "分"; //加数字
      }
    }
    str += "元" + strdig;
  } catch (e) {
    return "0元";
  }
  return str;
}
//拆分整数与小数
function splits(tranvalue) {
  var value = new Array('', '');
  temp = tranvalue.split(".");
  for (var i = 0; i 

后续会继续添加