df-w-tools
v1.0.0
Published
```shell npm i df-w-tools@latest ```
Readme
工具组件
安装
npm i df-w-tools@latest使用
import DfTools from 'df-w-tools'
DfTools.wind.vectorToSpeed(uu, vv)注册自己的插件
- 仅在当前页使用
import DfTools from 'df-w-tools'
class AddPlugin {
static add(a: number, b: number) {
return a + b
}
}
DfTools.register('add', AddPlugin)
const sum = DfTools.get<typeof AddPlugin>('addX').add(a.value, b.value)- 全局注册插件
// useMul.ts
import DfTools, { createAccessor } from './df-tools'
class MulPlugin {
static mul(a: number, b: number) {
return a * b
}
}
DfTools.register('mul', MulPlugin)
export const useMul = createAccessor<typeof MulPlugin>('mul')<!-- Mul.vue -->
<script setup lang="ts">
import { useMul } from './useMul'
const res = useMul().mul(1, 2)
</script>内置插件
内置插件的使用方法:
import DfTools from './DfTools'
const winD = DfTools.wind.vectorToDegrees(uu, vv)
// DfTools.wep.getName(4, 1)
// DfTools.file.downloadFile('/path/to/file', 'filename.txt')
// DfTools.color.toRgba('#ffffff') -> 'rgba(255, 255, 255, 1)'wind 风
vectorToSpeed(uMs: number, vMs: number, unNum?: number): number- uv转风速
vectorToDegrees(uMs: number, vMs: number, unNum?: number): number- uv转风向
wep 天气现象
getSomethingOnWep(wepCode: number, key: string | string[], isYb?: boolean): (string | undefined)[]- 获取天气现象code的 名称(name -> '晴'), key值(key -> 'QING')
getName(wep: number, wep2?: number, isYb?: boolean): string- 获取天气现象code的名称(wep2是补充code, 例如:wep=4, wep2=1 -> '雷阵雨转多云')
file 文件
downloadFile(filePath: string, filename?: string): voiddownloadBlob(blob: Blob, filename?: string): void
color 颜色
hex2rgba(hex: string): stringhex2hsl(hex: string): stringrgba2hex(rgba: string): stringrgba2hsl(rgba: string): stringhsl2rgba(hsl: string): stringhsl2hex(hsl: string): stringtoRgba(color: string): stringtoHsl(color: string): stringtoHex(color: string): string
regexp 正则
每个正则都有自己匹配的isXxx方法
// DfTools.regexp.contact.contactRegExp.MOBILE_CN -> RegExp
// DfTools.regexp.contact.isMobileCN(phone.value) -> booleanbase: 基础字符类正则
NUMBER: 数字INTEGER: 整数FLOAT: 浮点数ALPHABET: 字母ALPHABET_LOWER: 小写字母ALPHABET_UPPER: 大写字母ALPHANUMERIC: 字母数字组合ALPHANUMERIC_UNDERSCORE: 字母数字下划线组合CHINESE: 中文CHINESE_NAME: 中文姓名
contact: 联系方式类正则
EMAIL: 邮箱MOBILE_CN: 中国大陆手机号TEL_CN: 中国大陆座机ID_CARD_CN: 中国大陆身份证
net: 网络相关正则
URL: 通用 URL:协议可选HTTP_URL: HTTP/HTTPS URL:必须带协议IP_V4: IPv4:DOMAIN: 域名
account: 账号相关正则
USERNAME: 用户名:4~16 位,以字母开头,允许数字和下划线PASSWORD_SIMPLE: 简单密码:6~20 位任意字符PASSWORD_STRONG: 强密码:8~20 位,至少一个大写、一个小写、一个数字、一个特殊字符
datetime: 日期时间类正则
DATE_YYYY_MM_DD: 日期:2026-05-13TIME_HH_MM_SS: 时间:23:59:59DATETIME_YYYY_MM_DD_HH_MM_SS: 日期时间:2026-05-13 23:59:59
file: 文件相关正则
FILE_EXT: 文件扩展名提取IMAGE_EXT: 图片文件扩展名VIDEO_EXT: 视频文件扩展名AUDIO_EXT: 音频文件扩展名ZIP_EXT: 压缩包文件扩展名
color: 颜色相关正则
HEX_COLOR: Hex 颜色:#RGB/#RGBA/#RRGGBB/#RRGGBBAARGB_COLOR: RGB/RGBA 颜色HSL_COLOR: HSL/HSLA 颜色
browser: 浏览器/前端场景正则
HTML_TAG: HTML 标签HTML_COMMENT: HTML 注释BASE64_DATA_URL: Base64 Data URLJSON_LIKE: JSON 字符串外形粗校验
