//常用实用函数
//版本控制判断
function compareVersion(v1, v2) {
v1 = v1.split('.')
v2 = v2.split('.')
const len = Math.max(v1.length, v2.length)
while (v1.length < len) {
v1.push('0')
}
while (v2.length < len) {
v2.push('0')
}
for (let i = 0; i < len; i++) {
const num1 = parseInt(v1[i])
const num2 = parseInt(v2[i])
if (num1 > num2) {
return 1
} else if (num1 < num2) {
return -1
}
}
return 0
}
compareVersion('1.11.0', '1.9.9') // 1
//h5复制到粘贴板
function copyContentH5(content) {
var copyDom = document.createElement('div');
copyDom.innerText=content;
copyDom.style.position='absolute';
copyDom.style.top='0px';
copyDom.style.right='-9999px';
document.body.appendChild(copyDom);
//创建选中范围
var range = document.createRange();
range.selectNode(copyDom);
//移除粘贴板中内容
window.getSelection().removeAllRanges();
//添加新的内容到粘贴板
window.getSelection().addRange(range);
//copy
var successful = document.execCommand('copy');
copyDom.parentNode.removeChild(copyDom);
try{
var msg = successful ? "successful" : "failed";
} catch(err){
}
}
//copyContentH5('需要复制的内容')
//设置时长,进行倒计时
var maxtime = 60 * 60; //一个小时,按秒计算,自己调整!
function CountDown() {
if (maxtime >= 0) {
minutes = Math.floor(maxtime / 60);
seconds = Math.floor(maxtime % 60);
let msg = "距离结束还有" + minutes + "分" + seconds + "秒";
document.getElementById("timer").innerHTML = msg;
--maxtime;
} else{
clearInterval(timer); //时间到,结束!
}
}
let timer = setInterval("CountDown()", 1000);
//获取倒计时 时间戳形式
function getupdateTime() {
//时间形式为标准形式 如果不是则转换为
//new Date(2017,06,06);
//new Date(“2017/06/06”)
//到期时间,可由后台传
var end_time = new Date("2020,12,12").getTime();
var date = new Date();
var time = date.getTime();
//计算时间差并换算
var lag = (end_time - time)/1000; //时间戳 的秒数
var day=parseInt(lag/86400);//获取距离目标时间还有多少天
var yu=lag%86400;//余下的天数 的秒数
//获取剩下的时分秒
var h=parseInt(yu/3600);
var m=parseInt(yu%3600/60);
var s=parseInt(yu%3600%60);
var ms=(end_time - time)%1000 //如果需要精确到毫秒
if(ms < 100) {//如果需要精确到毫秒
ms = "0" + ms;
}
if(s < 10) {
s = "0" + s;
}
if(m < 10) {
m = "0" + m;
}
if(h < 10) {
h = "0" + h;
}
//页面显示
$(".settime").html(day + "天" + h + "时" + m + "分" + s + "秒"+ms+"毫秒");
}
//定时器
setInterval("getupdateTime()",1000); //在全局作用域下
setInterval(getupdateTime, 1000); //精确到秒
setInterval(getupdateTime, 50); //精确到毫秒
//获取前几天的函数 前几个月 前几年是相同的道理
function getBeforeDate(n) {
var n = n;
var d = new Date();
var year = d.getFullYear();
var mon = d.getMonth() + 1;
var day = d.getDate();
if(day <= n) {//天数不够==》 前一月
if(mon > 1) {
mon = mon - 1;
} else {
year = year - 1;
mon = 12;
}
}
d.setDate(d.getDate() - n);
year = d.getFullYear();
mon = d.getMonth() + 1;
day = d.getDate();
var s = year + "-" + (mon < 10 ? ('0' + mon) : mon) + "-" + (day < 10 ? ('0' + day) : day);
return s;
}
console.log(getBeforeDate(1));//昨天的日期
//获取当航栏的某个属性值为? eg:?id=XXX&tit=XXX
function GetQueryString(name){
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)return unescape(r[2]); return null;
}
let id=parseInt(GetQueryString("id")) ;
let ispm=GetQueryString("ispm");
//获取返回的src的img路径
function getImgArr(html){
// let regExp=new RegExp(`(?<=(src="))[^"]*?(?=")`, 'gi');//ios 林宽断言 不支持 和/ /
// let img=html.match(regExp)
let reg = new RegExp(`src=[\'\"]?([^\'\"]*)[\'\"]?`,"ig")
let img=html.match(reg);
if(img==null){//没有相关img 路径
return []
}else{
let arrImg=[]
img.forEach(item=>{
arrImg.push(item.substr(5).slice(0,-1))
})
return arrImg
}
}
getImgArr(`<img src="http://..." /><p><img src="http://..." /></p>`)
//获取后台返回的文本 (去除标签)
function getSimpleText(html){
var re1 = new RegExp("<.+?>","g");//匹配html标签的正则表达式,
let msg = html.replace(/ /g, ' ').replace(/&/g, '&')
.replace(/<\/?[^>]*>/g,'')//过滤html的标签
.replace(/</g, '<').replace(/>/g, '>')
return msg;
}
getSimpleText("<p>unescape() 函数可对通过 escape() 编码的字符串进行解码。</p>")
//长生一个用不重复的10-12位随机数的序列
function createUniqueId(n) {
var random = function() { // 生成10-12位不等的字符串
return Number(Math.random().toString().substr(2)).toString(36); // 转换成十六进制
};
var arr = [];
function createId() {
var num = random();
var _bool = false;
arr.forEach(v => {
if(v === num) _bool = true;
});
if(_bool) {
createId();
}else {
arr.push(num);
}
}
var i = 0;
while(i < n) {
createId();
i++;
}
return arr;
}
createUniqueId(5)//产生5不同的字符串 数组
//字体大小自适应
function resetWidth() {
// 兼容ie浏览器 document.body.clientWidth
var baseWidth = document.documentElement.clientWidth || document.body.clientWidth;
console.log(baseWidth);
if(baseWidth > 750) baseWidth = 750;
document.documentElement.style.fontSize = baseWidth / 750 * 100 + 'px'
}
resetWidth();
window.addEventListener('resize', function () {
resetWidth();
})