栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

一些很实用util工具函数

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一些很实用util工具函数

1、生成UUID。

  尽管前端已有Symbol,但这更多是在于确保对象的属性唯一,不过有时候也会用到关于生成ID的场景。

const createUUID = () => new Date().getTime().toString(32) + Math.floor(Math.random() * 999999).toString(32);
  2、手动实现一个jsonp。

在当下的情况中,解决跨域问题越来越趋向于代理,实际上jsonp也是另一种解决办法,仅仅将XHR请求变成非XHR请求(即script)。

class dorseyJsonp {

    constructor (url, callback) {

 let id = this.createRandomId();

 window[id] = function (result) {

     if(callback){
  callback(result);
     }

     let scriptID = document.querySelector('#' + id);
     scriptID.parentNode.removeChild(scriptID);
     window[scriptID] = null;
 }
 let script = document.createElement('script');

 script.src = url;
 script.id = id;
 script.type = 'text/javascript';

 document.body.appendChild(script);
    }
    createRandomId () {

 return 'query' + Math.floor(Math.random() * 10000).toString(32) + new Date().getTime().toString(32);
    }
}
  3、将URL的参数转化成一个对象。

如:

如输入:http://www.baidu.com/item.html#hello?pageNo=1&pageSize=30&keyword=hello
输出:{
    pageNo: '1',
    pageSize: '30',
    keyword: 'hello'
}

看看工具函数:

const getUrlParams = url => {

    let arr = url.match(/(?<=[?&]).*?(?=(&|$))/g),
 res = {};

    arr && arr.length && arr.map(item => res[item.split('=')[0]] = item.split('=')[1]);

    return res;
}

console.log(getUrlParams('http://www.baidu.com/item.html#hello?pageNo=1&pageSize=30&keyword=hello'));
console.log(getUrlParams('http://www.baidu.com'));
  4、日期格式化。

在实际应用的过程中,可能最常见的日期格式就是’2019-11-30 09:00:00’这样的格式了,但Javascript中似乎没有,所以需要我们自己实现。

const fill = num => num >= 10 ? num : ('0' + num);

const format = (date, formatStr) => {

	return formatStr.replace('yyyy', date.getFullYear())
	.replace('MM', fill(date.getMonth() + 1))
	.replace('dd', fill(date.getDate()))
	.replace('HH', fill(date.getHours()))
	.replace('mm', fill(date.getMinutes()))
	.replace('ss', fill(date.getSeconds()));
}

console.log(format(new Date(), 'yyyy年MM月dd日 HH时mm分ss秒'));

return format(new Date(), 'yyyy-MM-dd HH:mm:ss');
  5、图片前缀替换

实际应用中,无论是网站,app也好,大型复杂系统也罢,图片资源一般都储存在专门优化过的ftp服务器,而数据库中存储的实际上仅仅是一串URL,在业务的变迁过程中,有时候会涉及到资源迁移,这样一般情况下,数据库的图片不会储存IP跟端口或域名,有些设计之初存储了,则需要我们自行替换。

const changeIPAndPort = pic => pic.replace(/https://.*:d+//g, 'https:172.22.20.25:8080')
转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号