正则表达式效验邮箱格式, 手机号格式, 密码长度

news/2025/2/24 12:45:19
White graces:个人主页

🙉专栏推荐:Java入门知识🙉

🐹今日诗词:松树千年终是朽,槿花一日自为荣🐹


⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏

⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏


 在常见的登录和注册的场景中, 要经常效验格式的正确性,

比如邮箱格式:  xxxxxxx@gamile.com

手机号格式: 11位手机号

密码长度: 6-12位, 不包含特殊字符......

因此我们可以封装一个效验工具类去效验相关的格式, 代码如下

public class RegexUtil {

    /**
     * 邮箱:xxx@xx.xxx(形如:abc@qq.com)
     *
     * @param content
     * @return
     */
    public static boolean checkMail(String content) {
        if (!StringUtils.hasText(content)) {
            return false;
        }
        /**
         * ^ 表示匹配字符串的开始。
         * [a-z0-9]+ 表示匹配一个或多个小写字母或数字。
         * ([._\\-]*[a-z0-9])* 表示匹配零次或多次下述模式:一个点、下划线、反斜杠或短横线,后面跟着一个或多个小写字母或数字。这部分是可选的,并且可以重复出现。
         * @ 字符字面量,表示电子邮件地址中必须包含的"@"符号。
         * ([a-z0-9]+[-a-z0-9]*[a-z0-9]+.) 表示匹配一个或多个小写字母或数字,后面可以跟着零个或多个短横线或小写字母和数字,然后是一个小写字母或数字,最后是一个点。这是匹配域名的一部分。
         * {1,63} 表示前面的模式重复1到63次,这是对顶级域名长度的限制。
         * [a-z0-9]+ 表示匹配一个或多个小写字母或数字,这是顶级域名的开始部分。
         * $ 表示匹配字符串的结束。
         */
        String regex = "^[a-z0-9]+([._\\\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$";
        return Pattern.matches(regex, content);
    }

    /**
     * 手机号码以1开头的11位数字
     *
     * @param content
     * @return
     */
    public static boolean checkMobile(String content) {
        if (!StringUtils.hasText(content)) {
            return false;
        }
        /**
         * ^ 表示匹配字符串的开始。
         * 1 表示手机号码以数字1开头。
         * [3|4|5|6|7|8|9] 表示接下来的数字是3到9之间的任意一个数字。这是中国大陆手机号码的第二位数字,通常用来区分不同的运营商。
         * [0-9]{9} 表示后面跟着9个0到9之间的任意数字,这代表手机号码的剩余部分。
         * $ 表示匹配字符串的结束。
         */
        String regex = "^1[3|4|5|6|7|8|9][0-9]{9}$";
        return Pattern.matches(regex, content);
    }

    /**
     * 密码强度正则,6到12位
     *
     * @param content
     * @return
     */
    public static boolean checkPassword(String content){
        if (!StringUtils.hasText(content)) {
            return false;
        }
        /**
         * ^ 表示匹配字符串的开始。
         * [0-9A-Za-z] 表示匹配的字符可以是:
         * 0-9:任意一个数字(0到9)。
         * A-Z:任意一个大写字母(从A到Z)。
         * a-z:任意一个小写字母(从a到z)。
         * {6,12} 表示前面的字符集合(数字、大写字母和小写字母)可以重复出现6到12次。
         * $ 表示匹配字符串的结束。
         */
        String regex= "^[0-9A-Za-z]{6,12}$";
        return Pattern.matches(regex, content);
    }
}

美图分享

✨🎆谢谢你的阅读和耐心!祝愿你在编程的道路上取得更多的成功与喜悦!"🎆✨🎄

⭐️点赞收藏加关注,学习知识不迷路⭐️

🎉✔️💪🎉✔️💪🎉✔️💪🎉✔️💪🎉

👍😏⛳️点赞☀️收藏⭐️关注😏👍

👍😏⛳️点赞☀️收藏⭐️关注😏👍

👍😏⛳️点赞☀️收藏⭐️关注😏👍

🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️


http://www.niftyadmin.cn/n/5864331.html

相关文章

MQTT实现智能家居------3、源码分析(超详细)

一、连接服务器 1、初始化: mqtt_log_init();是一个空函数,自己定义宏 client mqtt_lease();//创建一个client结构体,从此以后client代表客户端 platform_memory_alloc();//是一个分配内存的总函数,可以适用于Linux、FreeRTos…

[oAuth2授权]Web前端+NodeCoze API Web后端程序+Coze授权服务器工作流程架构流程图详解

嗯,用户之前已经了解了如何使用React和Node.js结合Coze API实现OAuth2授权,现在他们具体想实现的是在Web应用中,当用户点击一个按钮(比如“和Bot对话”)时,触发授权流程,重定向到Coze的授权服务器获取code。用户还提供了一个具体的cURL请求示例,展示了如何通过302重定向…

鸿蒙学习-

鸿蒙数据传值 //* 传值 //* State /**State创建一个响应式的数据,但不是所有的更改都会引起刷新,只有被框架观察到的修改才会被刷新UI* 1. 基本数据类型如 number string boolean等值的变化修改* 2. Object类型,只会观察到第一层的数据变化或…

Redis面试宝典【刷题系列】

文章目录 一、什么是Redis?二、Redis相比Memcached有哪些优势?三、Redis支持的数据类型有哪些?四、Redis的主要消耗的物理资源是什么?五、Redis的全称是什么?六、Redis有哪些数据淘汰策略?七、为什么Redis需…

从底层驱动到 OpenCV:深入解析 Linux 摄像头完整技术栈

1. 引言 在嵌入式 Linux(如树莓派、NXP i.MX 8M Plus)上,摄像头数据的完整处理链涉及多个层次: 底层驱动层:设备树 (Device Tree)、MIPI CSI-2 协议、V4L2 (Video4Linux2)中间件层:libcamera(…

Ollama Linux 部署指南

文章来源:Linux 部署文档 -- Ollama 中文文档|Ollama官方文档 安装 要安装 Ollama,请运行以下命令: curl -fsSL https://ollama.com/install.sh | sh手动安装 [!注意] 如果要从以前的版本升级,则应使用sudo rm -rf /usr/lib/ol…

百度首页上线 DeepSeek 入口,免费使用

大家好,我是小悟。 百度首页正式上线了 DeepSeek 入口,这一重磅消息瞬间在技术圈掀起了惊涛骇浪,各大平台都被刷爆了屏。 百度这次可太给力了,PC 端开放仅 1 小时,就有超千万人涌入体验。这速度,简直比火…

计算机网络常考大题

运输层的主要功能 运输层为应用进程之间提供端到端的逻辑通信。 运输层还要对收到的报文进行差错检测。 运输层需要有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP 传输控制协议 TCP 概述 TCP 是面向连接的运输层协议。 每一条 TCP 连接只能有两个端点…