项目中常用到的正则(价格千位分割格式化,手机号3-4-4格式化,密码验证,去除空格,获取url参数,检测24小时时间制,检测url前缀,检测中文,检测手机号,英文单词前后加空格,判断版本号)
1、 数字价格千分位分割
'123456789'.replace(/(?!^)(?=(\d{3})+$)/g, ',') // "123,456,789"
2、手机号3-4-4分割,表单搜集场景,经常遇到的手机格式化
let mobile = '18379836654'
let mobileReg = /(?=(\d{4})+$)/g
console.log(mobile.replace(mobileReg, '-')) // 183-7983-6654
//用户输入手机号的过程中,不断格式化
const formatMobile = (mobile) => {return String(mobile).slice(0,11).replace(/(?<=\d{3})\d+/, ($0) =>'-' + $0).replace(/(?<=[\d-]{8})\d{1,4}/, ($0) =>'-' + $0)
}
console.log(formatMobile(123)) // 123
console.log(formatMobile(1234)) // 123-4
console.log(formatMobile(12345)) // 123-45
console.log(formatMobile(123456)) // 123-456
console.log(formatMobile(1234567)) // 123-4567
console.log(formatMobile(12345678)) // 123-4567-8
console.log(formatMobile(123456789)) // 123-4567-89
console.log(formatMobile(12345678911)) // 123-4567-8911
3、验证密码的合法性
//密码长度是6-12位,由数字、小写字母和大写字母组成,但必须至少包括2种字符
let reg = /(((?=.*\d)((?=.*[a-z])|(?=.*[A-Z])))|(?=.*[a-z])(?=.*[A-Z]))^[a-zA-Z\d]{6,12}$/
console.log(reg.test('123456')) // false
console.log(reg.test('aaaaaa')) // false
console.log(reg.test('AAAAAAA')) // false
console.log(reg.test('1a1a1a')) // true
console.log(reg.test('1A1A1A')) // true
console.log(reg.test('aAaAaA')) // true
console.log(reg.test('1aA1aA1aA')) // true
4、实现一个trim函数
//去除字符串的首尾空格
const trim = (str) => {return str.replace(/^\s*|\s*$/g, '')
}
trim(" sdnkaf ") //"sdnkaf"
// 提取非空格法
const trim1 = (str) => {return str.replace(/^\s*(.*?)\s*$/g, '$1')
}
trim1(" sdnkaf ")//"sdnkaf"
5、通过name获取url query参数
const getQueryByName = (name) => {const queryNameRegex = new RegExp(`[?&]${name}=([^&]*)(&|$)`)const queryNameMatch = window.location.search.match(queryNameRegex)// 一般都会通过decodeURIComponent解码处理return queryNameMatch ? decodeURIComponent(queryNameMatch[1]) : ''
}
//https://editor.csdn.net/md?not_checkout=1&articleId=120011793
getQueryByName("not_checkout") //1
6、匹配24小时制时间
//判断时间time是否符合24小时制
const check24TimeRegexp = /^(?:(?:0?|1)\d|2[0-3]):(?:0?|[1-5])\d$/
console.log(check24TimeRegexp.test('01:14')) // true
console.log(check24TimeRegexp.test('23:59')) // true
console.log(check24TimeRegexp.test('23:60')) // false
console.log(check24TimeRegexp.test('1:14')) // true
console.log(check24TimeRegexp.test('1:1')) // true
7、检测URL前缀
//检查一个url是否是http或者https协议头
const checkProtocol = /^https?:/
console.log(checkProtocol.test('https://juejin.cn/')) // true
console.log(checkProtocol.test('http://juejin.cn/')) // true
console.log(checkProtocol.test('//juejin.cn/')) // false
8、检测中文
//检测字符串str是否是都由中文组成
const checkChineseRegex = /^[\u4E00-\u9FA5]+$/
console.log(checkChineseRegex.test('前端胖头鱼'))//true
console.log(checkChineseRegex.test('1前端胖头鱼'))//false
console.log(checkChineseRegex.test('前端胖头鱼2'))//false
9、匹配手机号
//检测一个字符串是否符合手机号的规则
//手机号本身是有时效性的,各大运营商有时候会推出新的号码,所以我们的正则也具有时效性,需要及时补充
//具体规律可以查看 中国大陆移动终端通信号码
const mobileRegex =/^(?:\+?86)?1(?:3\d{3}|5[^4\D]\d{2}|8\d{3}|7(?:[235-8]\d{2}|4(?:0\d|1[0-2]|9\d))|9[0-35-9]\d{2}|66\d{2})\d{6}$/;console.log(mobileRegex.test("18379867725"));//trueconsole.log(mobileRegex.test("123456789101"));//falseconsole.log(mobileRegex.test("+8618379867725"));//trueconsole.log(mobileRegex.test("8618379867725"));//true
10、英文单词加前后空格
//字母汉字组成的字符串,用正则给英文单词加前后空格。
//如:you说来是come,去是go => you 说来是 come ,去是 go 例子
console.log("you说来是come,去是go".replace(/\b/g, " ")); // you 说来是 come ,去是 go
11、判断版本号
//要求版本号必须是X.Y.Z格式,其中XYZ都是至少一位的数字
const versionRegexp = /^(?:\d+\.){2}\d+$/;console.log(versionRegexp.test("1.1.1"));//trueconsole.log(versionRegexp.test("1.000.1"));//trueconsole.log(versionRegexp.test("1.000.1.1"));//false
项目中常用到的正则(价格千位分割格式化,手机号3-4-4格式化,密码验证,去除空格,获取url参数,检测24小时时间制,检测url前缀,检测中文,检测手机号,英文单词前后加空格,判断版本号)相关推荐
- Android项目中常用的工具类集(史上最全整理)
如果你是一名有经验的Android开发者,那么你一定积累了不少的工具类,这些工具类是帮助我们快速开发的基础.如果你是新手,那么有了这些辅助类,可以让你的项目做起来更加的简单. 下面介绍一个在GitHu ...
- 关于mysql的项目_项目中常用的MySQL 优化
本文我们来谈谈项目中常用的MySQL优化方法,共19条,具体如下: 一.EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划. 下面来个简单的示例,标注(1.2.3.4.5)我 ...
- Android 项目中常用到的第三方组件
项目中常用到的第三方组件 1 社会化分享 ShareSDK-Core-2.5.9.jar ShareSDK-QQ-2.5.9.jar ShareSDK-QZone-2.5.9.jar ShareSDK ...
- 乐鑫esp8266学习rtos3.0笔记第9篇:整理分享那些我在项目中常用的esp8266 rtos3.0版本的常见驱动,Button按键长短按、PWM平滑调光等。(附带demo)
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个"hello ...
- 项目中常用的MySQL优化你知道多少?
项目中常用的MySQL优化 文章目录 项目中常用的MySQL优化 前言 一.mysql优化是什么? 二.优化步骤 1.EXPLAIN 2.SQL语句中IN包含的值不应太多 3.SELECT语句务必指明 ...
- VB的一些项目中常用的通用方法-一般用于验证类
1.VB的一些项目中常用的通用方法: ' 设置校验键盘输入值,数字 Public Function kyd(key As Integer) As Integer '20060728 Dim mycha ...
- C#项目中常用到的设计模式
C#项目中常用到的设计模式 1. 引言 一个项目的通常都是从Demo开始,不断为项目添加新的功能以及重构,也许刚开始的时候代码显得非常凌乱,毫无设计可言.但是随着项目的迭代,往往需要将很多相同功能的代 ...
- 记录下项目中常用到的JavaScript/JQuery代码一(大量实例)
一直没有系统学习Javascript和Jquery,每次都是用到的时候去搜索引擎查,感觉效率挺低的.这边把我项目中用的的记录下,想到哪写哪,有时间再仔细整理. 当然,由于我主要是写后端java开发,而 ...
- element-ui 为<el-table>内数据 添加数字千位分割符
因用若依做后台管理脚手架,所以首先把以下方法写在Utils文件夹下的 ruoyi.js 里 1 export function stateFormat(row, column, cellValue) ...
- 面试官:项目中常用的 .env 文件原理是什么?如何实现?
1. 前言 大家好,我是若川.持续组织了5个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步.同时极力推荐订阅我写的<学习源码整 ...
最新文章
- SZUACM集训字符串基础总结: 字符串最小表示 ,KMP, EXKMP, Manracher, Trie树,字符串的hash; 附带一写常见的运用技巧,邝斌大佬的板子和例题[持续更新]
- linux应用程序安装与管理
- h1.1 hadoop简介
- Android 开源库获取途径整理
- 有趣的开源 AI 换脸工具:faceswap
- 【数据结构-图】4.拓扑排序和关键路径(注解+原理)
- 【深度学习】基于web端和C++的两种深度学习模型部署方式
- C语言spirograph算法图形绘制(附完整源码)
- windows下安装和设置gradle
- 现代软件工程 第十四章 【质量保障】 练习与讨论
- ubuntu学习笔记之安装oracle客户端
- mysql索引的类型和查看、添加、修改、删除索引的方法介绍
- 视觉SLAM笔记(14) Eigen几何模块
- NO.5 计算数组中三个数的最大乘积
- 穿越机用途和机架尺寸
- 【C语言】九九乘法口诀表
- 最新简库软件库工具箱综合iApp安卓源码
- 安装netbeans步骤
- 华为光猫虚拟服务器怎么设置,华为路由器连接光猫怎么设置
- 微型计算机显示器能源效率,【Mr. Green】加州计算机显示器能源效率规定