记录常用的正则表达式

简介: 记录常用的正则表达式

前言


旨在记录平常项目中用到的一些正则表达式,偶尔回来看下~


关于正则表达式可以看 MDN,或者可以看我整理的另一篇文章


正文


1. 身份证号码、手机号码脱敏处理


身份证脱敏策略:保留前 6 位和最后 2 位,其余部分省略。

手机号码脱敏策略:保留前 3 位和最后 4 位,其余部分省略。


*为了保护隐私,示例中身份证号、手机号码均为胡乱输入。如有相同纯属巧合,抱歉!

// 身份证脱敏
const idNumber = '801823200507142619'
idNumber.replace(/(\w{6})\w*(\w{2})/, '$1******$2') // "801823******19"
// 手机号码脱敏
const telephone = '13463592385'
telephone.replace(/(\w{3})\w*(\w{4})/, '$1****$2') // "134****2385"


2. 小数点后保留 2 位小数

思路请看文章

const reg = /^(([1-9]{1}\d*)|(0{1}))(\.\d{2})$/
console.log(reg.test(0.11)) // true
console.log(reg.test(5.12)) // true
console.log(reg.test(1)) // false
console.log(reg.test(2.5)) // false
console.log(reg.test(3.324)) // false
console.log(reg.test(4.)) // false
console.log(reg.test(5.00)) // false,请注意数值 5.00 的写法会直接转为 5 再做判断,所以是 false。
console.log(reg.test('5.00')) // true,所以字符串形式是匹配成功的。


3. 格式化 — 每 N 位空格隔开


下面示例中每 4 位空格隔开,可根据各自需求自行调整。

// 格式化
const str = '801823200507142619'
str.replace(/(.{4})/g, '$1 ') // "8018 2320 0507 1426 19"
// 提供一些辅助方法
const str2 = '  abc def  ' // 前后各两个空格
// 删除所有空白符
str2.replace(/\s/g, '') // "abcdef"
// 删除字符串第一个空白符和末尾最后一个空白符
str2.replace(/^\s|\s$/g, '') // " abc def "
// 删除所有前导和后置空白符,相当于 String.prototype.trim() 方法
str2.replace(/^\s*|\s*$/g, '') // "abc def"


4. 匹配中文字符

const reg = /^[\u4e00-\u9fa5]+$/
console.log(reg.test('')) // false
console.log(reg.test('123')) // false
console.log(reg.test('你好')) // true


5. 判断苹果设备

const isAppleDevice = /Mac|iPod|iPhone|iPad/.test(navigator.platform)


6. 判断移动设备

const isMobile = /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|IEMobile)/i.test(navigator.userAgent)


参考


目录
相关文章
|
IDE Go 开发工具
【Go·编辑器IDE】GoLand集成开发环境安装及使用教程
【Go·编辑器IDE】GoLand集成开发环境安装及使用教程
【Go·编辑器IDE】GoLand集成开发环境安装及使用教程
|
SQL 关系型数据库 MySQL
MySQL基础:事务
本文详细介绍了数据库事务的概念及操作,包括事务的定义、开启、提交与回滚。事务作为一组不可分割的操作集合,确保了数据的一致性和完整性。文章还探讨了事务的四大特性(原子性、一致性、隔离性、持久性),并分析了并发事务可能引发的问题及其解决方案,如脏读、不可重复读和幻读。最后,详细讲解了不同事务隔离级别的特点和应用场景。
504 4
MySQL基础:事务
|
SQL Java 数据库连接
Flink报错问题之SQL报错如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
JavaScript 前端开发
|
6天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
5天前
|
云安全 人工智能 自然语言处理
阿里云x硅基流动:AI安全护栏助力构建可信模型生态
阿里云AI安全护栏:大模型的“智能过滤系统”。
|
5天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
|
Linux 虚拟化 iOS开发
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
1080 4
|
8天前
|
存储 机器学习/深度学习 人工智能
大模型微调技术:LoRA原理与实践
本文深入解析大语言模型微调中的关键技术——低秩自适应(LoRA)。通过分析全参数微调的计算瓶颈,详细阐述LoRA的数学原理、实现机制和优势特点。文章包含完整的PyTorch实现代码、性能对比实验以及实际应用场景,为开发者提供高效微调大模型的实践指南。
682 2