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('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 << 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')); //输出:伍万肆仟叁佰贰拾壹元捌角捌分
后续会继续添加
网友评论