用正则表达式校验手机号和邮箱

news/2024/7/10 19:53:40 标签: 正则表达式, 开源软件, 笔记, python, 开源

正则表达式校验手机号和邮箱

在现代互联网时代,手机号和邮箱已经成为了人们日常生活中不可或缺的联系方式。作为开发人员,校验用户输入的手机号和邮箱的合法性是非常必要的。本文将介绍如何使用正则表达式校验手机号和邮箱的格式是否正确。

校验手机号

在中国,手机号的格式是11位数字,其中第一位必须是1。下面是使用正则表达式校验手机号的方法:

import re

def check_phone_number(phone_number):
    pattern = r"^1\\d{10}$"
    return bool(re.match(pattern, phone_number))

上述代码中,check_phone_number() 函数接受一个字符串类型的手机号作为参数,使用 re.match() 方法和正则表达式 pattern 进行匹配。如果匹配成功,则返回 True,否则返回 False。

上述正则表达式 pattern 是一个字符串,它的含义解释如下:

  • ^ 表示匹配字符串的开始位置
  • 1 表示第一位必须是数字 1
  • \\d{10} 表示接下来的 10 位必须是数字
  • $ 表示匹配字符串的结束位置

我们可以通过调用 check_phone_number() 函数来检验手机号的合法性:

print(check_phone_number("13812345678"))  # True
print(check_phone_number("1881234567"))   # False
print(check_phone_number("138123456789")) # False

校验邮箱

校验邮箱的格式比较复杂,但是通过正则表达式也可以很容易地实现。下面是使用正则表达式校验邮箱的方法:

import re

def check_email(email):
    pattern = r"^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$"
    return bool(re.match(pattern, email))

上述代码中,check_email() 函数接受一个字符串类型的邮箱地址作为参数,使用 re.match() 方法和正则表达式 pattern 进行匹配。如果匹配成功,则返回 True,否则返回 False。

上述正则表达式 pattern 是一个字符串,它的含义解释如下:

  • ^ 表示匹配字符串的开始位置
  • [a-zA-Z0-9_-]+ 表示匹配用户名部分,其中包含大小写字母、数字、下划线和横线
  • @ 表示匹配 @ 符号
  • [a-zA-Z0-9_-]+ 表示匹配域名部分,同样包含大小写字母、数字、下划线和横线
  • (\\.[a-zA-Z0-9_-]+)+ 表示匹配顶级域名部分,可以有多个,每个以 . 开头
  • $ 表示匹配字符串的结束位置

我们可以通过调用 check_email() 函数来检验邮箱的合法性:

print(check_email("example@example.com"))      # True
print(check_email("example@example.com.cn"))   # True
print(check_email("example_example.com"))     # False
print(check_email("example@example_com.cn"))  # False

通过使用正则表达式,我们可以轻松地校验手机号和邮箱的合法性,保证用户输入的数据格式正确,同时提高系统的安全性。


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

相关文章

普罗米修斯-docker安装

prometheus 监控原理 1、prometheus :虽然说是监控平台,但是实际上是一套数据库 2、mysql_exporter: 可以理解成程序或者软件,他是工作在我们要监控的目标服务器上,主要是用于监控mysql的数据。 3、node_exporter: 他的作用主要是…

ArduPilot之开源代码UARTs and the Console使用

ArduPilot之开源代码UARTs and the Console使用 1. 源由2. UART定义2.1 HAL_Empty2.2 HAL_ChibiOS2.3 HAL_ESP322.4 HAL_Linux2.5 HAL_SITL 3. 配置参数3.1 SERIALx_BAUD3.2 SERIALx_PROTOCOL3.3 SERIALx_OPTIONS3.4 SERIAL_PASSx3.5 SERIAL_PASSTIMO 4. UART常用函数5. 示例代…

操作系统:Page Cache

目录 如何查看系统的 Page Cache?page 与 Page CacheSwap 与缺页中断Page Cache 与 buffer cachePage Cache 与预读Page Cache 与文件持久化的一致性&可靠性Page Cache 的优劣势Page Cache 的优势Page Cache 的劣势 参考资料 Page Cache 的本质是由 Linux 内核…

Go RPC

目录 文章目录 Go RPCHTTP RPCTCP RPCJSON RPC Go RPC Go 标准包中已经提供了对 RPC 的支持,而且支持三个级别的 RPC:TCP、HTTP、JSONRPC。但 Go 的 RPC 包是独一无二的 RPC,它和传统的 RPC 系统不同,它只支持 Go 开发的服务器与…

通过 adb 设置音量

通过 adb 设置音量 1、adb 调用系统服务 Android 11 中调整音量&#xff1a; adb shell service call audio 9 i32 <编号> i32 <类型> i32 1Android 11 中设置音量&#xff1a; adb shell service call audio 10 i32 <编号> i32 <音量> i32 1通过s…

【ConfluxNews】2023.5.11 Swappi x Galaxy Blitz 双挖头矿已火爆开启!

1.【网络状态】当前版本V2.2.3&#xff0c;全网算力≈8T&#xff0c;昨日交易次数21K&#xff0c;昨日新增账户0.19K&#xff0c;昨日新增合约7个&#xff1b; 2.【POS参数】总锁仓275M&#xff08;-4&#xff09;&#xff0c;节点总数278&#xff08;3&#xff09;&#xff0c…

铁路信号计轴设备简介

设备概述 计轴设备是铁路信号系统中的一个重要组成部分。它的主要功能是&#xff1a; 利用安装在钢轨上的传感器&#xff0c;来探测进入和出清轨道区段的车轮对数&#xff0c;进而判别轨道区段的占用和出清&#xff0c;其作用与轨道电路等效。 根据两站办理发车进路情况及区…

线宽变大,损耗变小;线宽无限大,损耗无限小?

一博高速先生成员&#xff1a;黄刚 作为高速信号传输的重要的指标之一&#xff0c;损耗&#xff0c;无论是对硬件工程师&#xff0c;设计工程师还是我们SI工程师来说&#xff0c;都会是非常的关注。而对于像背板传输这种长距离的走线系统或是像芯片测试板要求损耗极小的情况&a…