格式化工具
本文档介绍格式化工具的使用方法。
FormatUtils
格式化工具类,支持文件大小、数字、日期等格式化。
文件大小格式化
typescript
import { FormatUtils } from '@vben/utils';
// 字节转可读格式
FormatUtils.formatFileSize(1024); // 1 KB
FormatUtils.formatFileSize(1048576); // 1 MB
FormatUtils.formatFileSize(1073741824); // 1 GB
// 自定义精度
FormatUtils.formatFileSize(1234567, 2); // 1.18 MB数字格式化
typescript
import { FormatUtils } from '@vben/utils';
// 千分位分隔
FormatUtils.formatNumber(1234567); // 1,234,567
FormatUtils.formatNumber(1234567.89); // 1,234,567.89
// 保留小数位
FormatUtils.formatNumber(123.456, 2); // 123.46
// 货币格式
FormatUtils.formatCurrency(1234.56); // ¥1,234.56
FormatUtils.formatCurrency(1234.56, '$'); // $1,234.56日期格式化
typescript
import { FormatUtils } from '@vben/utils';
const date = new Date();
// 基础格式化
FormatUtils.formatDate(date, 'YYYY-MM-DD'); // 2024-01-01
FormatUtils.formatDate(date, 'YYYY-MM-DD HH:mm:ss'); // 2024-01-01 12:30:45
FormatUtils.formatDate(date, 'MM/DD/YYYY'); // 01/01/2024
// 相对时间
FormatUtils.formatRelativeTime(date); // 刚刚 / 5分钟前 / 1小时前手机号格式化
typescript
import { FormatUtils } from '@vben/utils';
// 手机号分隔
FormatUtils.formatPhone('13800138000'); // 138 0013 8000
// 手机号脱敏
FormatUtils.maskPhone('13800138000'); // 138****8000身份证格式化
typescript
import { FormatUtils } from '@vben/utils';
// 身份证脱敏
FormatUtils.maskIdCard('110101199001011234'); // 110101********1234使用 dayjs
typescript
import dayjs from 'dayjs';
// 格式化日期
dayjs().format('YYYY-MM-DD');
dayjs().format('YYYY-MM-DD HH:mm:ss');
// 相对时间
import relativeTime from 'dayjs/plugin/relativeTime';
import 'dayjs/locale/zh-cn';
dayjs.extend(relativeTime);
dayjs.locale('zh-cn');
dayjs().fromNow(); // 刚刚
dayjs().subtract(1, 'hour').fromNow(); // 1小时前完整示例
vue
<script setup lang="ts">
import { ref } from 'vue';
import { FormatUtils } from '@vben/utils';
const fileSize = ref(1234567);
const number = ref(1234567.89);
const phone = ref('13800138000');
const idCard = ref('110101199001011234');
const date = ref(new Date());
</script>
<template>
<div class="format-demo">
<a-descriptions title="格式化示例" bordered>
<a-descriptions-item label="文件大小">
{{ fileSize }} 字节 = {{ FormatUtils.formatFileSize(fileSize) }}
</a-descriptions-item>
<a-descriptions-item label="数字格式化">
{{ number }} = {{ FormatUtils.formatNumber(number) }}
</a-descriptions-item>
<a-descriptions-item label="货币格式化">
{{ number }} = {{ FormatUtils.formatCurrency(number) }}
</a-descriptions-item>
<a-descriptions-item label="手机号">
{{ phone }} = {{ FormatUtils.formatPhone(phone) }}
</a-descriptions-item>
<a-descriptions-item label="手机号脱敏">
{{ phone }} = {{ FormatUtils.maskPhone(phone) }}
</a-descriptions-item>
<a-descriptions-item label="身份证脱敏">
{{ idCard }} = {{ FormatUtils.maskIdCard(idCard) }}
</a-descriptions-item>
<a-descriptions-item label="日期格式化">
{{ FormatUtils.formatDate(date, 'YYYY-MM-DD HH:mm:ss') }}
</a-descriptions-item>
<a-descriptions-item label="相对时间">
{{ FormatUtils.formatRelativeTime(date) }}
</a-descriptions-item>
</a-descriptions>
</div>
</template>API 参考
formatFileSize
格式化文件大小。
typescript
FormatUtils.formatFileSize(bytes: number, decimals?: number): stringformatNumber
格式化数字。
typescript
FormatUtils.formatNumber(num: number, decimals?: number): stringformatCurrency
格式化货币。
typescript
FormatUtils.formatCurrency(amount: number, symbol?: string): stringformatDate
格式化日期。
typescript
FormatUtils.formatDate(date: Date | string | number, format: string): stringformatPhone
格式化手机号。
typescript
FormatUtils.formatPhone(phone: string): stringmaskPhone
手机号脱敏。
typescript
FormatUtils.maskPhone(phone: string): stringmaskIdCard
身份证脱敏。
typescript
FormatUtils.maskIdCard(idCard: string): string