// 设置根节点html的字体大小用于移动端适配使用 export const setHtmlFontSize = () => { console.count("setHtmlFontSize"); (function (doc, win) { let resizeEvt = "orientationchange" in win ? "orientationchange" : "resize", recalc = function () { let htmlDom = doc.getElementsByTagName("html")[0]; requestAnimationFrame(() => { let clientWidth = doc.documentElement.clientWidth || doc.body.clientWidth; if (!clientWidth) return; htmlDom.style.fontSize = clientWidth >= 578.88 ? "144px" : 154.5 * (clientWidth / 578.88) + "px"; }); }; if (!doc.addEventListener) return; win.addEventListener(resizeEvt, recalc, false); doc.addEventListener("DOMContentLoaded", recalc, false); recalc(); })(document, window); }; // 密码正则 6到12位(字母,数字,下划线,减号) export const pwdRegex = (pwd = "") => { let regex = /^[a-zA-Z0-9_-]{6,12}$/; return regex.test(pwd); }; export const phoneRegex = (pwd = "") => { let regex = /^1[3-9]\d{9}$/; return regex.test(pwd); }; /** * @description 是否是合格http外链 */ export const isHttpUrl = (url: string) => { const regex = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\*\+,;=.]+$/; return regex.test(url); }; export const isHttpsUrl = (url: string) => { const regex = /^(?:https?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\*\+,;=.]+$/; return regex.test(url); }; /** * @description 是否是合格邮箱 */ export const emailReg = /^\w+(-+.\w+)*@\w+(-.\w+)*.\w+(-.\w+)*$/; export const isEmail = (email: string) => { return emailReg.test(email); }; /** * @description 只能是数字和英文 */ export const neReg = /^[A-Za-z0-9]+$/; export const isNE = (value: string) => { return neReg.test(value); }; /** * @description 是否是pwa */ export const isInStandaloneMode = () => window.matchMedia("(display-mode: standalone)").matches || document.referrer.includes("android-app://");