vue3 + ts 判断各种数据类型,首字母转大写,下划转驼峰,的方法集合

vue3 + ts 判断各种数据类型,首字母转大写,下划转驼峰,的方法集合(记录ing…)

1. 直接上代码

  1. 在utils文件夹下新建 `index.ts`

// index.ts/*** @description: 判断是否为某个类型*/
export function is(val: unknown, type: string) {return Object.prototype.toString.call(val) === `[object ${type}]`;
}/*** @description:  判断是否为函数*/
export function isFunction<T = Function>(val: unknown): val is T {return is(val, "Function");
}/*** @description: 判断是否已定义*/
export const isDef = <T = unknown>(val?: T): val is T => {return typeof val !== "undefined";
};/*** @description: 判断是否未定义*/
export const isUnDef = <T = unknown>(val?: T): val is T => {return !isDef(val);
};/*** @description: 判断是否为对象*/
export const isObject = (val: any): val is Record<any, any> => {return val !== null && is(val, "Object");
};/*** @description:  判断是否为时间*/
export function isDate(val: unknown): val is Date {return is(val, "Date");
}/*** @description:  判断是否为数值*/
export function isNumber(val: unknown): val is number {return is(val, "Number");
}/*** @description:  判断是否为字符串*/
export function isString(val: unknown): val is string {return is(val, "String");
}/*** @description:  判断是否为boolean类型*/
export function isBoolean(val: unknown): val is boolean {return is(val, "Boolean");
}/*** @description:  判断是否为数组*/
export function isArray(val: any): val is Array<any> {return val && Array.isArray(val);
}/*** @description: 判断是否客户端*/
export const isClient = () => {return typeof window !== "undefined";
};/*** @description: 判断是否为 null*/
export function isNull(val: unknown): val is null {return val === null;
}/*** @description: 判断是否为 null || undefined*/
export function isNullOrUnDef(val: unknown): val is null | undefined {return isUnDef(val) || isNull(val);
}/*** @description: 判断是否为 16 进制颜色*/
export const isHexColor = (str: string) => {return /^#?([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(str);
};/*** @description: 首字母转大写*/
export function titleCase(str) {return str.replace(/( |^)[a-z]/g, L => L.toUpperCase())
}/*** @description: 下划转驼峰*/
export function camelCase(str) {return str.replace(/_[a-z]/g, str1 => str1.substr(-1).toUpperCase())
}

2. 简单使用

<template><div ref="warp" class="warp"></div>
</template>
<script setup lang="ts">
import {is,isFunction,isDef,isUnDef,isObject,isDate,isNumber,isString,isBoolean,isArray,isClient,isNull,isNullOrUnDef,isHexColor,
} from "@/utils/index";
import { nextTick, onMounted, ref } from "vue";
onMounted(() => {// 判断值是否为某个类型let a = "111",b = 222,c = true;console.log(is(a, "String")); // trueconsole.log(is(b, "Number")); // trueconsole.log(is(c, "Boolean")); // true// 是否为函数let d = () => {console.log("你好");};console.log(isFunction(d)); // trueconsole.log(isFunction(a)); // false// 是否已定义console.log(isDef(a)); // true// 是否未定义console.log(isUnDef(d)); // false// 是否为对象let e = { a: 1, b: 2 };console.log(isObject(e)); // trueconsole.log(isObject(a)); // false// 是否为时间let f = new Date();let g = "09:49:56";console.log(isDate(f)); // trueconsole.log(isDate(g)); // false// 是否为数值let h = 123;let i = "123";console.log(isNumber(h)); // trueconsole.log(isNumber(i)); // false// 是否为字符串let k = "11111";console.log(isString(k)); // trueconsole.log(isString(b)); // false// 是否为boolean类型let l = true;console.log(isBoolean(l)); // trueconsole.log(isBoolean(k)); // false// 是否为数组let arr = [1, 2, 3];console.log(isArray(arr)); // trueconsole.log(isArray(l)); // false// 是否客户端console.log(isClient()); // pc端显示true// 是否为 nullconsole.log(isNull(null)); // trueconsole.log(isNull(undefined)); // falseconsole.log(isNull(a)); // false// 是否为 null || undefinedconsole.log(isNullOrUnDef(null)); // trueconsole.log(isNullOrUnDef(undefined)); // trueconsole.log(isNullOrUnDef(a)); // false// 是否为 16 进制颜色console.log(isHexColor("#dddddd")); //trueconsole.log(isHexColor("rgb(0, 0, 0)")); //false
});
</script>

3. 暂时搞定!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/228064.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCache入门

1. SpringCache概述 Spring Cache 是 Spring 框架提供的一个用于提高应用性能的缓存抽象。它不是一个具体的缓存实现&#xff0c;而是提供了一组一致的编程模型来整合各种缓存机制&#xff0c;比如 EhCache、Caffeine、Redis 等。Spring Cache 使得开发者可以通过简单的注解来…

Spring Boot+Mybatis设置sql日志打印

在全局配置文件添加以下内容&#xff1a;logging.level.com.demo.mapperdebug&#xff0c;com.demo.mapper&#xff1a;src下的mapper路径&#xff0c;debug&#xff1a;设置日志打印级别为debug&#xff0c;亦可设置为&#xff1a;ERROR、WARN、INFO application.properties …

10-流媒体-RTMP编译

将h264推流给服务器&#xff0c;就完成了采集端的推流工作。一般在嵌入式系统常用的rtmp推流方案是rtmpdump。使用rtmp库涉及到一些编译过程&#xff0c;下面我们一点点描述。 关于rtmp的使用涉及到3个开源库的编译&#xff08;openssl, zlib, rtmpdump&#xff09;&#xff0c…

【C++】optional的使用(一)

这篇文章介绍下C17引入的std::optional 为什么要有 optional 一般来说&#xff0c;如果想要一个函数返回“多个”值&#xff0c;C程序员倾向于使用结构体/类完成这个操作。即定义一个通用的结构体&#xff0c;在函数内部完成装填&#xff0c;然后返回一个实例化的结构体。 #…

fckeditor编辑器改造示例:增加PRE,CODE控件

查看专栏目录 Network 灰鸽宝典专栏主要关注服务器的配置&#xff0c;前后端开发环境的配置&#xff0c;编辑器的配置&#xff0c;网络服务的配置&#xff0c;网络命令的应用与配置&#xff0c;windows常见问题的解决等。 文章目录 修改方法&#xff1a;1&#xff09;修改fckco…

Python项目——贪吃蛇

1、原理 整个界面由一个二维数组组成。游戏开始时&#xff0c;会随机生成一个苹果&#xff08;红点&#xff09;和一条蛇&#xff08;黄点&#xff09;。蛇会在二维数组中移动&#xff0c;当蛇碰到苹果时&#xff0c;苹果被吃&#xff0c;蛇的长度加一&#xff08;红点变黄点&…

性能测试

什么是性能测试&#xff1f;性能测试定义性能测试和功能测试区别性能测试常见术语及指标1&#xff1a;用户数3&#xff1a;响应时间4&#xff1a;事务5&#xff1a;每秒事务通过数6&#xff1a;用户点击率7&#xff1a;吞吐量8&#xff1a;吞吐率9&#xff1a;思考时间10&#…

C++函数返回值类型不确定处理办法-函数重载

如果有一个函数的返回值不确定是int还是float&#xff0c;比如&#xff1a; int func(const int& input) {return(input 1);} float func(const int& input) {return(input 1);} //重定义报错float a func(1); 这样定义肯定是会报错的。因为同名函数的重载只能用…

基于ssm的简单学校课程管理系统的设计与实现(源码+调试)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于ssm的简单学校课程管…

【Python测试开发】文件上传操作

先写一个上传页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>文件上传</title><link href"http://dcn.bootcss/bootstrap/3.3.0/css/bootstrap.min.css" rel"styleshee…

探索Nginx的奥秘--从代理到负载均衡的艺术实践

文章目录 &#x1f33a;Nginx的引入&#x1f33a;&#x1f33a;深刻理解正向代理与反向代理&#x1f33a;&#x1f339;Reverse proxy&#x1f339;&#x1f339;正向代理与反向代理的区别&#x1f339;&#x1f339;反向代理为什么叫反向代理&#x1f339;&#x1f339;负载均…

C#教程(三):字符串的各种用法

在C#中&#xff0c;字符串&#xff08;string 类型&#xff09;是一种常用的数据类型&#xff0c;用于存储和操作文本数据。以下是一些C#中字符串的常见用法 1、输出任意的字符串长度 代码 #region 输出任意的字符串长度 Console.WriteLine("请输入你心中想到的名字&…

Activiti工作流框架学习笔记(一)之通用数据表详细介绍

文/朱季谦 Activiti工作流引擎自带了一套数据库表&#xff0c;这里面有一个需要注意的地方&#xff1a; 低于5.6.4的MySQL版本不支持时间戳或毫秒级的日期。更糟糕的是&#xff0c;某些版本在尝试创建此类列时将引发异常&#xff0c;而其他版本则不会。执行自动创建/升级时&a…

C++ 二叉搜索树(BST)的实现(非递归版本与递归版本)与应用

C 二叉搜索树的实现与应用 一.二叉搜索树的特点二.我们要实现的大致框架三.Insert四.InOrder和Find1.InOrder2.Find 五.Erase六.Find,Insert,Erase的递归版本1.FindR2.InsertR3.EraseR 七.析构,拷贝构造,赋值运算符重载1.析构2.拷贝构造3.赋值运算重载 八.Key模型完整代码九.二…

html css概念

1. 理解基本概念 HTML5&#xff1a;HTML&#xff08;HyperText Markup Language&#xff09;是网页的骨架。HTML5 是最新版本&#xff0c;提供了更多的标签和API&#xff0c;用于更丰富的网页功能和更好的用户体验。CSS3&#xff1a;CSS&#xff08;Cascading Style Sheets&am…

2020年第九届数学建模国际赛小美赛D题石头剪刀游戏与合作解题全过程文档及程序

2020年第九届数学建模国际赛小美赛 D题 石头剪刀游戏与合作 原题再现&#xff1a; 小时候你可能至少玩过几次石头剪刀游戏。在这个游戏中&#xff0c;你几乎有三个选择&#xff0c;每一个都有一个项目要打败&#xff0c;一个项目输给。石头打败剪刀&#xff0c;剪刀剪纸和布覆…

yasaf永安视安防监控恢复案例

永安视(yasaf)一个小到连官网都没有的安防厂商&#xff0c;是国内众多品牌中的一个&#xff0c;可以说是小十八线&#xff0c;让人敬佩的是这么一个小厂也自行写了嵌入式方案&#xff0c;下边我们来看看这个恢复案例。 故障存储: WD500G 故障现象: 此安防设备在使用过程中被…

Nougat:结合光学神经网络,引领学术PDF文档的智能解析、挖掘学术论文PDF的价值

Nougat&#xff1a;结合光学神经网络&#xff0c;引领学术PDF文档的智能解析、挖掘学术论文PDF的价值 这是Nougat的官方存储库&#xff0c;Nougat是一种学术文档PDF解析器&#xff0c;可以理解LaTeX数学和表格。 Project page: https://facebookresearch.github.io/nougat/ …

python/c++ Leetcode题解——1.两数之和

目录 方法1:枚举法 思路 Code 方法2:哈希表 思路 Code 方法1:枚举法 思路 最容易想到的方法是枚举数组中的每一个数 x&#xff0c;寻找数组中是否存在 target - x。 当我们使用遍历整个数组的方式寻找 target - x 时&#xff0c;需要注意到每一个位于 x 之前的元素都已…

Bash批处理文件:清理磁盘缓存

代码&#xff1a; echo offset SYSTEMDRIVE%systemdrive% set WINDIR%windir% set USERPROFILE%userprofile%echo 正在进行深度清理&#xff0c;请稍候......:: 清理临时文件夹 echo 删除 %temp% 文件夹中的所有文件... if exist "%temp%\*" (del /f /s /q %temp%\*…