| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import { formatDate } from '@vueuse/shared'
- export const isNullOrBlank = (string: string | null | undefined | number) =>
- string == null ||
- (string as string).length === 0 ||
- /^\s+$/.test(string as string)
- export const isLegadoUrl = (/** @type {string} */ url: string) =>
- /,\s*\{/.test(url) ||
- !(
- url.startsWith('http') ||
- url.startsWith('data:') ||
- url.startsWith('blob:')
- )
- /**
- * 验证输入的URL是否符合阅读后端地址规则
- * @param allowedProtocols 允许的协议,默认`["https:", "http:"]`
- */
- export const validatorHttpUrl = (
- http_url: string | URL,
- allowedProtocols: string[] = ['https:', 'http:'],
- ) => {
- try {
- const url = new URL(http_url)
- const { protocol } = url
- if (!allowedProtocols.includes(protocol))
- throw new Error(
- `Expected protocol ${allowedProtocols.join('/')}, but ${protocol}`,
- )
- return true
- } catch {
- return false
- }
- }
- export const dateFormat = (/** @type {number} */ t: number) => {
- const time = new Date().getTime()
- const offset = Math.floor((time - t) / 1000)
- let str = ''
- if (offset <= 30) {
- str = '刚刚'
- } else if (offset < 60) {
- str = offset + '秒前'
- } else if (offset < 3600) {
- str = Math.floor(offset / 60) + '分钟前'
- } else if (offset < 86400) {
- str = Math.floor(offset / 3600) + '小时前'
- } else if (offset < 2592000) {
- str = Math.floor(offset / 86400) + '天前'
- } else {
- str = formatDate(new Date(t), 'YYYY-MM-DD')
- }
- return str
- }
|