-
获取URL的查询参数
let query = {}; location.search.replace(/([^?&=]+)=([^&]+)/g, (_,k,v) => query[k]=v);
-
生成随机字符串
// 生成长度为11的随机字母数字字符串 Math.random().toString(36).substring(2);
-
生成10位随机数字
Math.floor((Math.random()+Math.floor(Math.random()*9+1))*Math.pow(10,9))
-
过去或未来几天的时间集合
// 创建过去三天的数组 [...Array(3).keys()].map(days => new Date(Date.now() - 86400000 * days));
-
随机16进制颜色值
'#' + Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, '0');
-
ES6数组去重
[...new Set(arr)]
-
手机号正则过滤字符
11位手机号
str.replace(/^([^1]*)([\d]{0,11})(.*)$/, '$2')
-
固定电话正则过滤字符
13位包含'-'
str.replace(/^([^\d]*)([\d-]{0,13})(.*)$/, '$2');
-
js 可选链(实验性功能)
const a = obj?.a; // undefined, 如果没有"?"就报错了 // const a = (null === obj || undefined === obj) ? undefined : obj.a; const baz = obj?.foo?.bar?.baz; var object1 = {} var foo = object1.foo ?? "default"; // "default" let a = false; a ||= 1; // a || (a = 1); obj::func // 等价 func.bind(obj) //函数科里化 function add(x, y) { return x + y; } const addOne = add(1, ?); // 返回函数addOne addOne(2); // 3
-
数字、字母、汉字混合排序
[].sort((a, b) => { const num = { 一: 1, 二: 2, 三: 3, 四: 4, 五: 5, 六: 6, 七: 7, 八: 8, 九: 9, 十: 10 }; const reg = new RegExp(Object.keys(num).join('|')); a = a.replace(reg, $1 => num[$1]); b = b.replace(reg, $1 => num[$1]); return a.localeCompare(b, 'zh-CN', { numeric: true }); });
-
rgb与int颜色数值转换
// int转rgb function converArgbToRgb(argb){ var rgb = []; rgb[0] = (argb & 0xff0000) >> 16; rgb[1] = (argb & 0xff00) >> 8; rgb[2] = (argb & 0xff); return "rgb("+rgb[0]+","+rgb[1]+","+rgb[2]+")"; } // rgb转int function converRgbToArgb(r,g,b){ var color = ((0xFF << 24)|(r << 16)|(g << 8)|b); return color; }
持 续 更 新 中 。 。 。 \color{#4285f4}{持}\color{#ea4335}{续}\color{#fbbc05}{更}\color{#4285f4}{新}\color{#34a853}{中}\color{#ea4335}{。。。} 持续更新中。。。