三十的博客

渡一教育:分享常用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"
#渡一教育 #常用JS