正则匹配手机、邮箱、密码

2023-09-16 11:04:54

正则匹配手机、邮箱、密码

public abstract class RegexPatterns {
    /**
     * 手机号正则
     */
    public static final String PHONE_REGEX = "^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\\d{8}$";
    /**
     * 邮箱正则
     */
    public static final String EMAIL_REGEX = "^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
    /**
     * 密码正则。4~32位的字母、数字、下划线
     */
    public static final String PASSWORD_REGEX = "^\\w{4,32}$";
    /**
     * 验证码正则, 6位数字或字母
     */
    public static final String VERIFY_CODE_REGEX = "^[a-zA-Z\\d]{6}$";

}

解读:

  1. PHONE_REGEX 手机号正则表达式:

    • ^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\\d{8}$
    • 这个正则表达式用于验证中国大陆的手机号码。
    • 解释:
      • ^:匹配字符串的开始。
      • 1:手机号码开头通常为1。
      • ([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89]):这一部分用于匹配第二位数字,表示运营商的信息。例如,以3或8开头的数字表示移动,以4、5或7开头的数字表示其他运营商。
      • \\d{8}:匹配后面的8位数字,表示手机号码的主体部分。
      • $:匹配字符串的结束。
  2. EMAIL_REGEX 邮箱正则表达式:

    • ^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$
    • 这个正则表达式用于验证电子邮件地址。
    • 解释:
      • ^:匹配字符串的开始。
      • [a-zA-Z0-9_-]+:匹配用户名部分,允许包含字母、数字、下划线和短横线。
      • @:匹配邮箱地址中的 “@” 符号。
      • [a-zA-Z0-9_-]+:匹配邮箱域名的一部分。
      • (\\.[a-zA-Z0-9_-]+)+:匹配邮箱域名中的点号分隔符,可以出现一次或多次。
      • $:匹配字符串的结束。
  3. PASSWORD_REGEX 密码正则表达式:

    • ^\\w{4,32}$
    • 这个正则表达式用于验证密码,要求密码是4到32位的字母、数字或下划线组成。
    • 解释:
      • ^:匹配字符串的开始。
      • \\w{4,32}:匹配4到32位的字母、数字或下划线。
      • $:匹配字符串的结束。
  4. VERIFY_CODE_REGEX 验证码正则表达式:

    • ^[a-zA-Z\\d]{6}$
    • 这个正则表达式用于验证验证码,要求验证码是6位的字母或数字组成。
    • 解释:
      • ^:匹配字符串的开始。
      • [a-zA-Z\\d]{6}:匹配6位的字母或数字。
      • $:匹配字符串的结束。

这些正则表达式可以用于在代码中验证输入数据的格式是否符合预期,例如,在用户注册、登录和数据验证等场景中。

更多推荐

Blazor前后端框架Known-V1.2.15

V1.2.15Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行。Gitee:https://gitee.com/known/KnownGithub:https://github.com/known/Known概述基于C#和Blazor实现的快速开发框架,前后端分离,开

SpringMVC异常处理

1概述SpringMVC框架处理异常的常用方式:使用@ExceptionHandler注解处理异常。2@ExceptionHandler注解和用@ControllerAdvice注解2.1@ExceptionHandler注解使用注解@ExceptionHandler可以将一个方法指定为异常处理方法。该注解只有一个可选

C#__使用流读取和写入数据的简单用法

使用流处理数据的优势:可以一次性搬运数据量大的文件,把数据当做水,一点一点搬运。数据的传输方向:从外部源传输到程序(读取流);从程序传输到外部源(读入流)外部源:文件、网络数据、内存区域、命名管道读写内存:System.IO.MemorySystem处理网络数据:System.Net.Sockets.NetworkSt

让Pegasus天马座开发板用上OLED屏

继上篇《让Pegasus天马座开发板吃上STM8S标准库》移植完标准库之后,于是我又想为天马座开发板添加一块屏幕。终于在我的零件箱底下找到了沉入箱底多年的0.96OLED屏幕。屏幕介绍这个是128x64像素的屏幕模块,其使用的SSD1306的驱动IC。而目前该模组,只支持3/4线SPI及I2C通信方式。硬件连接我将天马

centos7如何释放磁盘空间?

centos7磁盘满了,但是找不到大的文件,原因是没有释放磁盘空间小白教程,一看就会,一做就成。1.原因当centos系统下启动多个服务且没有一定的清理机制时(比如日志),系统磁盘空间很容易就被占满,但是有时候删除了文件却发现系统磁盘空间未释放,可能原因是忽略了有应用一直在往其中写数据,直接删除某文件无法释放磁盘空间2

Spring SpEL 表达式语言

一、文本表达式文本表达式支持字符串、数字(正数、实数及十六进制数)、布尔类型及null。其中的字符表达式可使用单引号来表示,形如:'Deniro'。如果表达式中包含单引号或者双引号字符,那么可以使用转义字符\。数字支持负数、小数、科学记数法、八进制数和十六进制数。默认情况下,实数使用Double.parseDouble

IO口电路种类

文章目录参考1.高速振荡电路(时钟IO引脚)2.与GPIO功能共享的低速振荡电路(子时钟IO)3.CMOS滞后输入引脚4.电源输入保护电路5.A/D转换器ref+(AVRH)带保护电路的电源输入端6.CMOS电平输出7.CMOS电平输出,带有模拟输入8.CMOS电平输出,带有模拟输入(上面是滞后,这个是自动)9.没有模

编译opencv-3.4.5 [交叉编译]

在unbuntu20.04环境下编译opencv3.4.5,cmake版本:3.27.4gcc版本:11.4.0g++版本:11.4.0在此环境下编译opencv4.5.4正常。1.编译时遇到的问题(1)Builttargetlibprotobufmake:***[Makefile:163:all]错误2make时用s

使用pdfplumber提取pdf中的文字

一、安装pdfplumberpdfplumber是一个Python库,必须通过pip安装才能在Python代码中进行使用。使用以下命令在Python中安装pdfplumber。pipinstallpdfplumber二、用pdfplumber打开PDF文档在Python中使用pdfplumber打开PDF文档的方法非常

如何使用极狐GitLab 支持 ISO 27001 合规

目录组织控制技术控制了解更多本文来源:about.gitlab.com作者:JosephLongo译者:武让极狐GitLab高级解决方案架构师作为一体化平台,通过极狐GitLab可以很容易实现DevSecOps全生命周期管理。极狐GitLab使开发人员能够更快地构建更好的软件应用。但是,它的能力还不仅限于DevSecO

VSCode 配置 Lua 开发环境(清晰明了)

概述由于AutoJS学得已经差不多了,基本都会了,现在开始向其他游戏脚本框架进发,Lua语言很强大,就不多说,按键精灵、触动精灵等等都是用该语言编程脚本的,由于按键精灵、触动精灵和AutoJS类似,不是说一样是因为按键精灵、触动精灵整合大漠插件等牛逼插件,控制3维角色等。我主要学来在GG修改器中修改游戏内存,我的初衷是

热文推荐