37 lines
831 B
TypeScript
37 lines
831 B
TypeScript
/**
|
||
* 递归访问嵌套属性
|
||
* @param {object} obj
|
||
* @param {string} path 属性路径字符串,eg: "a.b.c"
|
||
*/
|
||
export function getNestedProperty(obj:object, path:string):any {
|
||
return path.split('.').reduce((o, key) => o?.[key], obj);
|
||
}
|
||
|
||
/**
|
||
* 转义正则特殊字符
|
||
* @param {string} str
|
||
*/
|
||
export function escapeRegExp(str:string) {
|
||
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
||
}
|
||
|
||
/**
|
||
* 获取系统主题色
|
||
*/
|
||
export function getOsTheme(){
|
||
const isDarkTheme = window.matchMedia("(prefers-color-scheme: dark)"); // 是深色
|
||
if (isDarkTheme.matches) {
|
||
return 'dark';
|
||
} else {
|
||
return "light";
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 获取rem的px值
|
||
*/
|
||
export function remToPxNumber(rem: number): number {
|
||
const f = parseFloat(document.documentElement.style.fontSize);
|
||
return f * rem;
|
||
}
|