渡一教育:分享常用JS
复制文本到剪切板
js
// 复制文本到剪切板
const copyToClipboard = (text) => navigator.clipboard.writeText(text);
// test
copyToClipboard("Hello World");获取某个日期位于当年的第几天
js
// 获取某个日期位于当年的第几天
const dayOfYear = (date) =>
Math.floor((date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24);
// test
dayOfYear(new Date(2025, 11, 9));将 rgb 颜色灰度化
js
// 将rgb颜色灰度化(基于光感加权平均)
const gray = (r, g, b) => 0.2126 * r + 0.7152 * g + 0.0722 * b;
// test
gray(50, 100, 150); // 92.98 92.98 92.98
解析 URL 中的参数
js
// 解析URL中的参数
const parseQuery = (url) => {
q = {};
url.replace(/([^?&=]+)=([^&]+)/g, (_, k, v) => (q[k] = v));
return q;
};
// test
parseQuery("http://a.com?a=1&b=2"); // {a: "1", b: "2"}
parseQuery("a=1&b=2"); // {a: "1", b: "2"}
筛选对象属性
js
// 筛选对象属性
const pick = (obj, ...props) =>
Object.fromEntries(Object.entries(obj).filter(([k]) => props.includes(k)));
// test
pick({ a: 1, b: 2, c: 3 }, "a", "b"); // {a: 1, b: 2}
随机 HEX 颜色
js
// 随机HEX颜色
const randomHexColor = () =>
"#" +
Math.floor(Math.random() * 0xffffff)
.toString(16)
.padEnd(6, "0");
// test
randomHexColor(); // "#123456"
随机字符串
js
// 随机字符串
const randomString = () => Math.random().toString(36).slice(2);
// test
randomString(); // "123456"
去掉字符串中的元素标记
js
// 去掉字符串中的元素标记
const removeTag = (fragment) =>
new DOMParser().parseFromString(fragment, "text/html").body.textContent || "";
// test
removeTag("<p>Hello <b>World</b></p>"); // "Hello World"