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 <= 0) { return totalSeconds; //即倒计时结束 } else { return residueTime; } } function setIntervalTime() { //倒计时函数 var timeId = setInterval(function() { let curTime = TimeDown("2019-12-25 12:00:00"); //若剩余时间小于等于0 清除定时器 if (curTime <= 0) { clearInterval(timeId); timeId = null; } }, 1000); } setIntervalTime(); //调用定时器 //注意:页面离开或销毁根据情况也要清除定时器,重新进入页面时再次调用 多个定时器同步刷新
5个性化格式输出时间 /* 1、< 60s, 显示为“刚刚” 2、>= 1min && < 60 min, 显示与当前时间差“XX分钟前” 3、>= 60min && < 1day, 显示与当前时间差“今天 XX:XX” 4、>= 1day && < 1year, 显示日期“XX月XX日 XX:XX” 5、>= 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 < curYear) { timeStr = year + '年' + month + '月' + day + '日 ' + hour + ':' + minute + ':' + seconds; } else { var pastTime = curDate - date, pastH = pastTime / 3600000;
if (pastH > 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)|(1\d\d)|([1-9]\d)|\d))\b(/[-a-z0-9_:@&?=+,.!/~%$])?)$/i if (regular.test(strUrl)) { return true; } else { return false; } } IsURL('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 << 18 | h2 << 12 | h3 << 6 | h4; o1 = bits >> 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 < data.length); dec = tmp_arr.join(''); dec = utf8_decode(dec); return dec; } 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 <= len; i++) { var n = source[0].charAt(len - i); //取得某个位数上的数字 var bn = 0; if (len - i - 1 >= 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 < temp.length; i++) { value[i] = temp[i]; } return value; }
console.log(transform('54321.88')); //输出:伍万肆仟叁佰贰拾壹元捌角捌分 后续会继续添加
作者:回到唐朝做IT 链接:www.jianshu.com/p/e57999e7b… 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。