常用的正则表达式30个,整数、浮点数、中文、英文字母、手机号、邮箱、日期、IP等等( JavaScript、Java)

news/2025/2/22 5:05:26/

前言

正则表达式(Regular Expression)是一种强大的文本模式匹配工具,它使用特定的语法规则来对字符串进行模式匹配和文本搜索。下面,LZ整理了一些常见的正则表达式模式,帮助你更好地处理数据验证。话不多说,常用正则表达式及其解释如下:

正则表达式

注意:在正则表达式中,^开头,$结尾,我们使用 / 将正则表达式包裹起来,以便将它们与其他的内容(如修饰符)区分开来。这是一种常见的约定,特别是在 JavaScript等编程语言中,以 / 包裹的正则表达式是一种常用的表示方式。在 Java 中,正则表达式的语法并不需要使用 / 来包裹。

1、正整数含零:

/^0?$|^([1-9][0-9]*)?$/

用于验证正整数,包括零。

2、整数:

/^-?\d+$/

用于匹配一个整数,可以是正整数或负整数

3、浮点数:

/^-?\d+(\.\d+)?$/

用于匹配一个浮点数,可以是正浮点数或负浮点数

4、英文字母:

/^[a-zA-Z]+$/

用于匹配一个由英文字母组成的字符串

5、英文和数字:

/^[a-zA-Z0-9]+$/

用于匹配一个由英文字母和数字组成的字符串

6、中文字符:

/^[\u4e00-\u9fa5]+$/

用于匹配一个由中文字符组成的字符串

7、密码(8-20个字符,至少包含一个大写字母、一个小写字母和一个数字):

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,20}$/

用于匹配字符串只能由大小写字母和数字组成并且长度必须在8到20个字符之间

8、密码(8-20个字符,至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符):

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+-={}[]:;"'<>,.?/]).{8,20}$/

用于匹配字符串只能由大小写字母、数字和特殊字符组成并且长度必须在8到20个字符之间

9、11位中国手机号码(简单):

/^1\d{10}$/

简单验证中国手机号码,以1字头,后面是10位数字。

10、中国大陆手机号码(是否合法):

/^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/

用于匹配一个符合中国大陆手机号码格式的字符串

11、固定电话号码:

/^(?:\d{3}-)?\d{6,8}$/

验证固定电话号码,3个数字的区号,-作为连字符,然后电话号码的主体部分至少6或8位数字。

12、手机号码(国际格式):

/^\+\d{1,3}-\d{1,14}$/

用于匹配带有国际区号的电话号码格式,加号字符,1到3个数字的区号,-作为连字符,然后电话号码的主体部分1到14个数字。

13、邮箱(是否合法):

/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/

用于匹配有效的电子邮件地址的正则表达式,其中:

  • ([a-zA-Z0-9_-])+ 表示邮箱名称部分,由一个或多个字母、数字、下划线、破折号组成。
  • @ 表示邮箱地址中的 at 符号。
  • ([a-zA-Z0-9_-])+ 表示域名部分,由一个或多个字母、数字、下划线、破折号组成。
  • (\.[a-zA-Z0-9_-])+ 表示顶级域名部分,由一个或多个字母、数字、下划线、破折号组成。
  • + 表示匹配前面的表达式一次或多次。

14、身份证号码(15或18位):

/^\d{15}|\d{18}$/

用于验证身份证号码,可以是15位或18位数字。

15、邮政编码:

/^[1-9]\d{5}$/

用于匹配六位数字的邮政编码格式

16、银行卡号 :(15位、16位或者19位)

/^([1-9]{1})(\d{14}|\d{18}|\d{15})$/

用于匹配长度为15、 16 或 19 位的数字

17、用户名(5-20个字符,可以包含字母、数字、下划线):

/^[a-zA-Z0-9_]{5,20}$/

用于匹配长度为5到20个字符,且只包含字母、数字或下划线的字符串

18、时间(hh:mm:ss 格式):

/^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/

用于匹配 24 小时制的时间格式,其中小时部分可以是 00 到 23,分钟和秒钟部分都必须是 00 到 59 的两位数。

19、日期(yyyy-MM-dd):

/^((((19|[2-9]\d)\d{2})-(0[13-9]|1[0-2])-(0[1-9]|[12]\d|30))|(((19|[2-9]\d)\d{2})-(0[1-9]|1[0-2])-31)|(((19|[2-9]\d)(0[48]|[2468][048]|[13579][26]))-02-29)|(((19|[2-9]\d)\d{2})-02-(0[1-9]|1\d|2[0-8]))|((((19|[2-9]\d)(0[13578]|1[02]))|((19|[2-9]\d)(0[469]|11)))-(30|31)))-\d{2}[0-9Xx]$/

用于验证 yyyy-MM-dd 格式的日期,已考虑平闰年。

20、IP地址:

/^((([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}([1-9]|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5]))$/

用于验证IP地址,支持IPv4格式。

21、MAC地址:

/^([0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$/

用于验证MAC地址,支持以冒号或短横线分隔的标准格式。

22、车牌号:

/^[A-Z0-9\u4e00-\u9fa5]{1}[A-Z0-9\u4e00-\u9fa5]{5}[A-Z0-9\u4e00-\u9fa5挂学警港澳]{1}$/

用于验证中国车牌号,包括普通车、新能源车和特殊车牌。

23、HTML标签:

/^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/

用于匹配简单的 HTML 标签

24、文件名(只允许字母、数字、下划线、点号和连字符):

/^[a-zA-Z0-9_.-]+$/

用于匹配包含字母、数字、下划线、点和破折号的字符串,其中可以重复出现这些字符

25、数字和逗号的列表:

/^(\d+,)*\d+$/

用于匹配逗号分隔的整数列表,比如:“1,2,3,4,5”:以逗号分隔的整数列表

26、十六进制颜色码:

/^#[0-9A-Fa-f]{6}$/

用于匹配十六进制颜色值,其中以 # 符号开头,后面跟随着六位大小写字母和数字的组合

27、URL(合法性):

/^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\*\+,;=.]+$/

用于验证URL地址的有效性,支持http和https。

28、数字的科学记数法(支持正负号):

/^[+-]?\d+(\.\d+)?(e[+-]?\d+)?$/

用于匹配数字的各种形式,包括整数、小数和科学计数法表示的数字。

29、16进制字符:

/^[0-9A-Fa-f]+$/

用于匹配一个字符串是否全部由十六进制数字(0-9A-Fa-f)组成。

30、UUID(通用唯一识别码):

/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/

用于匹配一个符合 UUID(通用唯一标识符)标准格式的字符串。UUID是一个标识符,它的格式类似于:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee,其中 a、b、c、d 和 e 都是十六进制数字(0-9A-Fa-f

总结

正则表达式是处理和验证文本数据的强大工具,它可以用于各种场景,包括表单验证、文本搜索和数据清洗。在编程和数据处理中,了解并熟练使用正则表达式,将有效提升你的开发效率。

希望本文提供的常用正则表达式能对你的开发工作有所帮助!


http://www.ppmy.cn/news/1116958.html

相关文章

MATLAB APP纯小白入门 两数相加

万事开头难&#xff0c;最怕第一次。使用matlab APP 实现两数求和&#xff0c;如下图所示&#xff0c;c a b&#xff0c;输入数字后&#xff0c;按 “” 就计算。 步骤 拖拽三个 Edit Field(Numeric) 过来&#xff0c;并且双击名字分别改为 a,b,c。注意修改名字后右边会有点变…

SOCKS5 认证的方法

在进行网络浏览或爬虫等相关工作时&#xff0c;我们经常会遇到需要使用 SOCKS5 代理认证的情况。然而&#xff0c;某些浏览器可能不提供原生支持 SOCKS5 代理认证的选项&#xff0c;给我们带来了一些困扰。本文将为大家介绍几种解决浏览器不支持 SOCKS5 代理认证问题的方法。 …

基于微信小程序的在线小说阅读系统,附数据库、教程

1 功能简介 Java基于微信小程序的在线小说阅读系统 微信小程序的在线小说阅读系统&#xff0c;系统的整体功能需求分为两部分&#xff0c;第一部分主要是后台的功能&#xff0c;后台功能主要有小说信息管理、注册用户管理、系统系统等功能。微信小程序主要分为首页、分类和我的…

爬虫项目(四):抓取网页所有图片

文章目录 一、书籍推荐二、完整代码三、运行结果 一、书籍推荐 推荐本人书籍《Python网络爬虫入门到实战》 &#xff0c;详细介绍见&#x1f449;&#xff1a; 《Python网络爬虫入门到实战》 书籍介绍 二、完整代码 原理&#xff1a;抓取该链接中所有的图片格式。基于seleni…

济南ITSS认证流程,认证条件

ITSS认证流程,认证条件 一、ITSS的意义 ITSS认证——信息技术服务标准&#xff0c;是在工业和信息化部、国家标准化委的领导和支持下&#xff0c;由ITSS工作组研制 的一套IT服务领域的标准库和一套提供IT服务的方法论。 ITSS认证-信息技术服务标准是一套成体系和综合配套的信息…

vant 组件库的基本使用

文章目录 vant组件库1、什么是组件库2、vant组件 全部导入 和 按需导入的区别3、全部导入的使用步骤&#xff1a;4、按需导入的使用步骤&#xff1a;5、封装vant文件包 vant组件库 该项目将使用到vant-ui组件库&#xff0c;这里的目标就是认识他&#xff0c;铺垫知识 1、什么…

恒合仓库 - 仓库管理系统搭建

仓库管理系统搭建 文章目录 仓库管理系统搭建一、项目介绍1.1 项目描述1.2 技术选型1.3 模块划分 二、搭建前端环境三、搭建后端环境3.1 创建springboot项目 - 划分包层次3.2 导入依赖3.3 启动类配置3.4.配置文件配置 一、项目介绍 1.1 项目描述 项目搭球为满足日益扩大的仓库…

Linux 性能专题笔记(一):平均负载的理解

文章目录 uptime 的命令解释uptime 平均负载的理解man uptime平均负载的合理值系统负载的趋势 案例分析CPU 密集型程序IO 密集型大量进程 学习笔记主要来源&#xff1a;Linux性能优化实战_Linux_性能调优-极客时间 uptime 的命令解释 uptime 09:17:52 系统当前时间up 1 day, 1…