js工具方法记录

校验数字是否有效的11位手机号

function isValidPhoneNum(value: string) {return /^[1][3,4,5,6,7,8,9][0-9]{9}$/.test(value)
}

手机号中间4位掩码

function maskPhoneNum(phone: string, space = false) {if (!phone) {return ''}const reg = /(\d{3})\d{4}(\d{4})/return phone.replace(reg, space ? '$1 **** $2' : '$1****$2')
}

数字千分位分隔,支持小数点

function thousands(num: number) {const str = num.toString()const reg =str.indexOf('.') > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/greturn str.replace(reg, '$1,')
}

URL

获取链接参数,支持query和hash

// 使用 URLSearchParams
function getURLParameter(name: string): string | null {const urlParams = new URLSearchParams(window.location.search);if (urlParams.has(name)) {return urlParams.get(name);} else {const hashParams = new URLSearchParams(window.location.hash.replace('#?', ''));return hashParams.get(name);}
}
// 使用正则表达式
function getURLParameter(name: string): string | null {let match = window.location.search.match(new RegExp('[?&]' + name + '=([^&]+)'));if (match) {return decodeURIComponent(match[1]);} else {match = window.location.hash.match(new RegExp('[#?&]' + name + '=([^&]+)'));if (match) {return decodeURIComponent(match[1]);}}return null;
}

向url拼接查询参数字符串

function appendQuery(url: string, extraQueryParams: Record<string, string | number>, appendPos: 'hash' | 'query' = 'query'): string {const extraQuery = Object.entries(extraQueryParams).map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value.toString())}`).join('&');const [mainPart, hashPart] = url.split('#', 2);if (appendPos === 'hash' && hashPart) {const hashQueryIndex = hashPart.indexOf('?');if (hashQueryIndex >= 0) {// If there are already query parameters in the hash part, append the new onesreturn `${mainPart}#${hashPart.slice(0, hashQueryIndex + 1)}${extraQuery}&${hashPart.slice(hashQueryIndex + 1)}`;} else {// If there are no query parameters in the hash part, add the new onesreturn `${mainPart}#${hashPart}?${extraQuery}`;}} else {const mainQueryIndex = mainPart.indexOf('?');if (mainQueryIndex >= 0) {// If there are already query parameters in the main part, append the new onesreturn `${mainPart.slice(0, mainQueryIndex + 1)}${extraQuery}&${mainPart.slice(mainQueryIndex + 1)}`;} else {// If there are no query parameters in the main part, add the new onesreturn `${mainPart}?${extraQuery}`;}}
}

UA

获取iOS的版本

function getIOSVersion() {const ua = navigator.userAgentconst match = ua.match(/(iPhone\sOS)\s([\d_]+)/)return match ? match[2].replace(/_/g, '.') : ''
}function getIOSMajorVersion() {const version = getIOSVersion()return version ? parseInt(version, 10) : 0
}

在这里插入图片描述

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

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

相关文章

人像抠图HumanSeg——基于大规模电话会议视频数据集的连接感知人像分割

前言 人像抠图将图像中的人物与背景进行像素级别的区分的技术。通过人像分割&#xff0c;可以实现诸如背景虚化、弹幕穿人等各种有趣的功能&#xff0c;为视频通话和影音观看提供更加优质和丰富的体验。由于广泛部署到Web、手机和边缘设备&#xff0c;肖像分割在兼顾分割精度的…

解决微信小程序页面数量限制问题的6种方法

微信小程序页面数量限制为200个页面&#xff0c;如果您需要展示更多页面&#xff0c;可以考虑使用以下6种方法来解决不同场景和需求微信小程序页面数量限制问题。 1. 动态生成内容 使用导航跳转到新页面&#xff0c;并在新页面中动态生成内容。例如&#xff0c;可以使用 wx.n…

真机笔记(2)项目分析

目录 1. 项目&#xff1a; 2. 网络工程师工作流程 3. 实验 设备命名 登录密码 使用SSH协议 1. 项目&#xff1a; 竞标方&#xff1a;集成商、厂商、代理商、服务商、监理检测公司 在一个网络项目中&#xff0c;不同的角色承担着不同的职责和任务。以下是集成商、厂商、代…

目标跟踪与行为识别

目标跟踪与行为识别是计算机视觉领域中的两个重要研究方向&#xff0c;它们在视频监控、人机交互、智能交通、机器人导航等多个领域有着广泛的应用。 目标跟踪 目标跟踪是指在视频序列中连续地定位一个或多个目标的位置和状态。它的核心任务是关联视频中不同帧中的目标&#…

经典面试题prototype 和 proto 区别是什么

原型是为了实现对象间的联系&#xff0c;解决构造函数无法数据共享而引入的一个属性&#xff0c;而原型链是一个实现对象间联系即继承的主要方法 prototype是构造函数的属性 __proto__是每个实例都有的属性&#xff0c;可以访问 [[prototype]] 属性 实例的__proto__与其构造函…

Rust 语言的 HashMap

HashMap 在 Rust 中是一个非常常用且强大的数据结构&#xff0c;它允许你存储键值对(key-value pairs)&#xff0c;并且能够快速地基于键检索值。 下面是使用 HashMap 的一些基本示例&#xff1a; 首先&#xff0c;你需要在你的文件中引入 HashMap&#xff1a; use std::col…

Github多账号切换

在开发阶段&#xff0c;如果同时拥有多个开源代码托管平台的账户&#xff0c;在代码的管理上非常麻烦。那么&#xff0c;如果同一台机器上需要配置多个账户&#xff0c;怎样才能确保不冲突&#xff0c;不同账户独立下载独立提交呢&#xff1f; 我们以两个github账号进行演示 …

ChatGPT智能聊天系统源码v2.7.6全开源Vue前后端+后端PHP

测试环境:Linux系统CentOS7.6、宝塔、PHP7.4、MySQL5.6,根目录public,伪静态thinkPHP,开启ssl证书 具有文章改写、广告营销文案、编程助手、办公达人、知心好友、家庭助手、出行助手、社交平台内容、视频脚本创作、AI绘画、思维导图等功能 ai通道:文心一言、MiniMax、智…

【Linux C | 多线程编程】线程的退出

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a; 本文未经允许…

序列的使用

目录 序列的创建 序列的使 Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 在许多数据库之中都会存在有一种数据类型 — 自动增长列&#xff0c;它能够创建流水号。如果想在 Oracle 中实现这样的自动增长列&#xff0c;可…

亚远景科技-Hardware SPICE与ISO26262,硬件SPICE与功能安全的映射

硬件SPICE&#xff08;Software Process Improvement and Capability Determination for Hardware Engineering&#xff09;与ISO26262的映射主要涉及将硬件工程过程的改进模型与ISO 26262系列标准中的硬件开发进行对应和关联。这种映射有助于组织在进行硬件工程过程改进时&…

laravel(源码笔记)控制器解析过程

控制器 isControllerActionrunController parseControllerCallback Str::parseCallback($this->action[‘uses’]); 可能返回ControlleractionCallback或者只有回调callbackgetController parseControllerCallback()[0]返回控制器实例 getControllerMethod parseControlle…

Ubuntu安装GPU驱动

ubuntu-drivers autoinstall 中间提示nvidia 470 有戏啊 nvidia-smi

蓝桥杯第192题 等差数列 C++ Java Python

目录 题目 思路和解题方法 复杂度 空间 时间 c 代码 Java 版本&#xff08;仅供参考&#xff09; Python 版本&#xff08;仅供参考&#xff09; 题目 思路和解题方法 首先&#xff0c;输入n和数组a的值。对数组a进行排序。计算数组a中相邻元素之间的差的最大公约数&…

android AMS的面试题目

问题&#xff1a; 描述AMS&#xff08;ActivityManagerService&#xff09;在Android系统中的角色和作用是什么&#xff1f; 答案&#xff1a; AMS是Android系统中的核心服务之一&#xff0c;它主要负责管理应用程序的四大组件&#xff08;Activity、Service、BroadcastReceive…

对象与继承

创建一个对象的几种方式 new Object()或者字面量{},或者__proto__&#xff1b; let obj {name: obj,sayName: function () {console.log(this.name)} } // obj ---> Object.prototype ---> null ​// 可以通过 __proto__ 字面量属性将新创建对象的[[Prototype]] 指向另…

分库分表实战

先了解分库分表的一些概念&#xff0c;参考&#xff1a;【MySQL】MySQL分库分表详解[通俗易懂]-腾讯云开发者社区-腾讯云 然后觉得哔哩哔哩里讲的挺好的&#xff0c;要试一下&#xff1a;1、海量数据冲击下的MySQL优化方案_哔哩哔哩_bilibili 看到了P5 还有博客&#xff1a;…

基于springboot的mysql实现读写分离

前言: 首先思考一个问题:在高并发的场景中,关于数据库都有哪些优化的手段&#xff1f;常用的有以下的实现方法:读写分离、加缓存、主从架构集群、分库分表等&#xff0c;在互联网应用中,大部分都是读多写少的场景,设置两个库,主库和读库,主库的职能是负责写,从库主要是负责读…

在存在代理的主机上,为docker容器配置代理

1、配置Firefox的代理 (只配置域名或者ip&#xff0c;前面不加http://) 2、为容器中的Git配置代理 git config --global http.proxy http://qingteng:8080 3、Git下载时忽略证书校验 env GIT_SSL_NO_VERIFYtrue git clone https://github.com/nginx/nginx.git 4、docker的…

IDEA | 资源文件中文乱码问题解决

问题 IDEA打开资源文件&#xff0c;显示乱码问题。 解决方案 1、电脑是mac&#xff0c;点击IDEA->【Preferences】->【Editor】->【File Encodings】 2、选择【Properties Files】中的UTF-8&#xff0c;并勾选Transparent native-to-ascii conversion。 3、最后点击…