整理项目中经常用到的正则

目录

1、手机号码

2、Email 邮箱

3、QQ 号码

4、非零正整数

5、URL 地址

6、身份证号


项目中难免会经常使用到表单,而表单项校验就需要用到正则,

所以整理总结一下自己项目中使用比较频繁的一些正则校验逻辑。

正则表达式 是由一些具有特殊含义的字符组成的字符串,多用于查找、替换符合规则

的字符串。在表单验证、Url映射等处都会经常用到。

在写正则表达式的时候,我们需要把模式写入一对 / / 正斜杠里面

/正则表达式/匹配模式

1、手机号码

/*** 手机号码正则* @param {string} phone* @returns {Boolean}*/
export function validPhone(phone) {// const reg = /^1[3456789]\d{9}$/;const reg =/^\s{0}$|(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;return reg.test(phone);
}

2、Email 邮箱

/*** Email 邮箱正则* @param {string} phone* @returns {Boolean}*/
export function validEmail(emial) {const reg =/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z-0-9]+\.)+[a-zA-Z]{2,}))$/;return reg.test(emial);
}

3、QQ 号码

/*** QQ 号码* @param {string} QQ* @returns {Boolean}*/
export function validQQ(QQ) {const reg = /^[1-9][0-9]{4,10}$/;return reg.test(QQ);
}

4、非零正整数

/*** 非零的正整数* @param {string} integer* @returns {Boolean}*/
export function validInteger(integer) {const reg = /^[1-9]\d*$/;return reg.test(integer);
}

5、URL 地址

/*** url 地址* @param {string} url* @returns {Boolean}*/
export function validURL(url) {const reg =/^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/;return reg.test(url);
}

6、身份证号

/*** 身份证号* @param {string} id* @returns {Boolean}*/
export function validId(id) {const reg =/^[1-9][0-9]{5}(18|19|([23][0-9]))[0-9]{2}(0[1-9]|1[0-2])(0[1-9]|[12][0-9]|3[01])[0-9]{3}[0-9Xx]$/gm;return reg.test(id);
}

7、


推荐小白观看文章 :

正则表达式 _ 基础版


元字符    描述
.      查找单个字符,除了换行和行结束符
\w    查找单词字符
\W    查找非单词字符
\d    查找数字
\D    查找非数字字符
\s    查找空白字符
\S    查找非空白字符
\b    匹配单词边界
\B    匹配非单词边界
\0    查找 NUL字符
\n    查找换行符
\f    查找换页符
\r    查找回车符
\t    查找制表符
\v    查找垂直制表符
\xxx    查找以八进制数 xxxx 规定的字符
\xdd    查找以十六进制数 dd 规定的字符
\uxxxx    查找以十六进制 xxxx规定的 Unicode 字符


重复类量词列表
量词    描述
n+    匹配任何包含至少一个 n 的字符串
n*    匹配任何包含零个或多个 n 的字符串
n?    匹配任何包含零个或一个 n 的字符串
n{x}    匹配包含 x 个 n 的序列的字符串
n{x,y}    匹配包含最少 x 个、最多 y 个 n 的序列的字符串
n{x,}    匹配包含至少 x 个 n 的序列的字符串


JavaScript 正则表达式支持的边界量词
量词    说明
^    匹配开头,在多行检测中,会匹配一行的开头
$    匹配结尾,在多行检测中,会匹配一行的结尾


终于码完辣!你学废了吗?码字不易,大家多多点赞支持!


会持续更新的, Loading。。。

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

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

相关文章

JavaScript之数据类型(3)——object进阶

前言&#xff1a; 利用基础知识来构建对象会发现十分复杂&#xff0c;我们可以结合其他的知识点来为我们object的构建进行优化。 <1>工厂法&#xff1a; 基本格式&#xff1a; function creatObject(属性值1,属性值2,属性值3,...,属性值n) {var 对象名 new Object();对…

在IDEA中使用 Spring Initializr 新建 spring boots 项目

【在IDEA中使用 Spring Initializr 新建 spring boots 项目 - CSDN Apphttp://t.csdnimg.cn/mVs5P Spring Initializr 创建spring boots项目 添加到pom.xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connec…

Python | Leetcode Python题解之第84题柱状图中最大的矩形

题目&#xff1a; 题解&#xff1a; class Solution:def largestRectangleArea(self, heights: List[int]) -> int:n len(heights)left, right [0] * n, [n] * nmono_stack list()for i in range(n):while mono_stack and heights[mono_stack[-1]] > heights[i]:righ…

代码随想录算法训练营day21 | 513.找树左下角的值、112. 路径总和、106.从中序与后序遍历序列构造二叉树

513.找树左下角的值 迭代法比较简单&#xff0c;层序遍历&#xff0c;找到最下面一层的第一个节点。题目已经说明节点数>1了 class Solution:def findBottomLeftValue(self, root: Optional[TreeNode]) -> int:queue collections.deque()queue.append(root)result ro…

LeetCode题练习与总结:复原IP地址--93

一、题目描述 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。 例如&#xff1a;"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址&#xff0c;但是 &qu…

Rust学习笔记(中)

前言 笔记的内容主要参考与《Rust 程序设计语言》&#xff0c;一些也参考了《通过例子学 Rust》和《Rust语言圣经》。 Rust学习笔记分为上中下&#xff0c;其它两个地址在Rust学习笔记&#xff08;上&#xff09;和Rust学习笔记&#xff08;下&#xff09;。 错误处理 pani…

01、什么是ip、协议、端口号知道吗?计算机网络通信的组成是什么?

声明&#xff1a;本教程不收取任何费用&#xff0c;欢迎转载&#xff0c;尊重作者劳动成果&#xff0c;不得用于商业用途&#xff0c;侵权必究&#xff01;&#xff01;&#xff01; 目录 前言 计算机网络 网络ip地址 网络协议 网络端口号 前言 最近有个项目要用到相关文章…

Android — 使用 Runtime 获取日志并保存至 download 目录

万一哪天要用找不到 使用 Runtime 获取日志并保存至 download 目录。 try {final String path Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() File.separator;ArrayList<String> commandLine new ArrayList&l…

蓝桥杯单片机之模块代码《多样点灯方式》

过往历程 历程1&#xff1a;秒表 历程2&#xff1a;按键显示时钟 历程3&#xff1a;列矩阵按键显示时钟 历程4&#xff1a;行矩阵按键显示时钟 历程5&#xff1a;新DS1302 历程6&#xff1a;小数点精确后两位ds18b20 历程7&#xff1a;35定时器测量频率 历程8&#xff…

大数据Scala教程从入门到精通第六篇:Scala编译结果反编译分析

一&#xff1a;Scala编译结果反编译分析 问题&#xff1a;为什么Scalac之后的生成的class文件有两个&#xff0c;一个带$的&#xff0c;一个不带$的&#xff1f; 不能直接java 执行scala编译的字节码文件。 直接运行的话就会报错&#xff0c;会报一个类没有被找到。 引入类库就…

JavaScript 防抖与节流——以游戏智慧解锁实战奥秘

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 &#x1f3ae; 引言❓ 什么是防抖和节流&#x1f3f9; 防抖(Debounce) - 锁定追击&#xff0c;精确无误&#x1f4cc; 基础概念&#x1f4cc; 适用场景&#x1f4cc; 实战代码&#xff1a;防抖 应用于输入框的实时搜索 &…

经济学博弈论介绍

经济学博弈论是经济学的一个重要分支&#xff0c;研究经济主体之间的策略选择和互动。博弈论的核心理论框架是“博弈”&#xff0c;即在不确定对方行为的情况下&#xff0c;个体根据自身利益和目标制定策略。 在经济学博弈论中&#xff0c;个体被称为“博弈者”&#xff0c;他…

Java基础入门day48

day48 JDBC调用关系 tomcat 简介 tomcat是Apache下的一个核心项目&#xff0c;免费开源&#xff0c;支持servlet和jsp。 tomcat技术先进&#xff0c;性能稳定&#xff0c;目前比较流行的web应用服务器 安装 官网&#xff1a; Apache Tomcat - Welcome! 下载 tomcat8.5 解压&a…

Linux入门攻坚——23、DNS和BIND基础入门1

DNS——Domain Name Service&#xff0c;协议&#xff08;C/S&#xff0c;53/udp&#xff0c;53/tcp&#xff09; BIND——Berkeley Internet Name Domain&#xff0c;ISC&#xff08;www.isc.org&#xff09; 互联网络上主机之间的通信依靠的是IP&#xff0c;而人或程序一般使…

tailwindcss大纲

布局 css说明地址aspect-ratio用于控制元素纵横比Aspect Ratio - Tailwind CSSwidth <br />max-widthcontainer&#xff1a;用于将元素的宽度固定到当前断点的组件Container - Tailwind CSScolumns用于控制元素内列数Columns - Tailwind CSSbreak-after用于控制列或页在…

通义灵码企业版正式发布,满足企业私域知识检索、数据合规、统一管理等需求

5 月 9 日阿里云 AI 峰会&#xff0c;阿里云智能集团首席技术官周靖人宣布&#xff0c;通义灵码企业版正式发布&#xff0c;满足企业用户的定制化需求&#xff0c;帮助企业提升研发效率。 通义灵码是国内用户规模第一的智能编码助手&#xff0c;基于 SOTA 水准的通义千问代码模…

基于 element-ui 表格组件 el-table 导出表格数据

方法一&#xff1a;前端处理&#xff0c;直接导出 e-table 组件的表格数据 import XLSX from xlsx;/*** el-table 表格导出* param {*} idSelector id选择器* param {*} name 导出表格名称* param {*} remove 表格是否存在左/右固定列&#xff0c;存在则传入true&#xff0c;反…

在MyBatis中,如何将数据库中的字符串类型映射为枚举类型?

在MyBatis中&#xff0c;如何将数据库中的字符串类型映射为枚举类型&#xff1f; 网上看了很多教程。说了很多&#xff0c;但是都没说到重点&#xff01; 很简单&#xff0c;xml文件中&#xff0c; 使用resultType&#xff0c;而不是使用resultMap就可以了。 resultType"…

用HAL库改写江科大的stm32入门例子8-1 DMA数据转运

实验1-实验目的&#xff1a;通过DMA把buffer的数据搬运到buffer2当中。 //declare a buffer to store the data uint32_t buffer[3] {1,2,3};//declare a buffer to store the data uint32_t buffer2[3] {0,0,0}; DMA&#xff1a;是个搬运数据的小助手。 相关设置&#xff1…

Baidu Comate:释放编码潜能,革新软件开发

Baidu Comate Baidu Comate&#xff0c;智能代码助手&#xff0c;凭借着文心大模型的强大支撑&#xff0c;结合了百度多年的编程实战数据和丰富的开源资源&#xff0c;形成了一款崭新的编码辅助利器。它不仅具备着高智能、多场景、价值创造的特质&#xff0c;更可广泛应用于各…