记录常用的正则表达式

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

前言


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


关于正则表达式可以看 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)


参考


目录
相关文章
|
3月前
|
Python
如何使用正则表达式来匹配特定格式的电话号码?
如何使用正则表达式来匹配特定格式的电话号码?
|
5月前
正则查找符合条件的数据
正则查找符合条件的数据
39 0
|
7月前
|
机器学习/深度学习 JavaScript 前端开发
技术心得记录:正则表达式(c#)
技术心得记录:正则表达式(c#)
27 0
|
8月前
|
存储 关系型数据库 MySQL
MySQL查询:过滤掉字母
【5月更文挑战第5天】
|
8月前
|
数据处理
正则表达式详解:解析星号的含义
【4月更文挑战第3天】
981 1
正则表达式详解:解析星号的含义
|
8月前
过滤多余的字符串
过滤多余的字符串
29 0
|
8月前
|
Perl
sed删除不匹配正则表达式的行(保留匹配行)
sed删除不匹配正则表达式的行(保留匹配行)
782 2
C#编程-86:正则表达式查找
C#编程-86:正则表达式查找
101 0
C#编程-86:正则表达式查找
|
机器学习/深度学习
【关于正则表达式的特殊符号的处理】之前自己在提取一个表达式一直提取不到,后来解决了,记录下知识点
1.开始的表达式:"drugLicenseCompanyperson":[{"pk":"(.*?)" 2.修改后的表达式:"drugLicenseCompanyperson":\[\{"pk":"(.*?)"