正则表达式电子邮件验证

2024-02-20

我用这个

@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"

正则表达式来验证电子邮件

([\w\.\-]+)- 这是一级域名(许多字母和数字,还有点和连字符)

([\w\-]+)- 这是二级域名

((\.(\w){2,3})+)- 这适用于其他级别域(从 3 到无穷大),其中包括一个点和 2 或 3 个文字

这个正则表达式有什么问题?

编辑:它不匹配“[电子邮件受保护] /cdn-cgi/l/email-protection" email


顶级域名就像.museum http://en.wikipedia.org/wiki/.museum不以这种方式匹配,还有一些其他长 TLD。此外,您还可以使用以下方法验证电子邮件地址邮件地址类 http://msdn.microsoft.com/en-us/library/system.net.mail.mailaddress.aspx正如微软所解释的here http://msdn.microsoft.com/en-us/library/01escwtf.aspx在注释中:

不使用正则表达式来验证电子邮件地址, 您可以使用 System.Net.Mail.MailAddress 类。确定 电子邮件地址是否有效,请将电子邮件地址传递给 MailAddress.MailAddress(String) 类构造函数。

public bool IsValid(string emailaddress)
{
    try
    {
        MailAddress m = new MailAddress(emailaddress);

        return true;
    }
    catch (FormatException)
    {
        return false;
    }
}

这会为您省去很多麻烦,因为您不必编写(或尝试理解别人的)正则表达式。

EDIT: 对于那些过敏的人试着抓:在.NET 5中你可以使用MailAddress.TryCreate。也可以看看https://stackoverflow.com/a/68198658 https://stackoverflow.com/a/68198658,包括如何修复 ..、空格、缺失 .TLD 等的示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式电子邮件验证 的相关文章

  • 如何通过php获取网页的Open Graph协议?

    PHP 有一个简单的命令来获取网页的元标记 get meta tags 但这仅适用于具有名称属性的元标记 然而 开放图谱协议如今变得越来越流行 从网页获取 opg 值的最简单方法是什么 例如 我看到的基本方法是通过 cURL 获取页面并使用
  • 为什么我不能用 `= delete;` 声明纯虚函数?

    Intro 纯虚函数使用通用语法声明 virtual f 0 然而 自 c 11 以来 有一种方法可以显式地传达non existence 特殊 成员函数的 Mystruct delete eg default constructor Q
  • 如何创建可以像 UserControl 一样编辑的 TabPage 子类?

    我想创建一个包含一些控件的 TabPage 子类 并且我想通过设计器来控制这些控件的布局和属性 但是 如果我在设计器中打开子类 我将无法像在 UserControl 上那样定位它们 我不想创建一个带有 UserControl 实例的 Tab
  • 如何在 Android NDK 中创建新的 NativeWindow 而无需 Android 操作系统源代码?

    我想编译一个 Android OpenGL 控制台应用程序 您可以直接从控制台启动 Android x86 运行 或者从 Android x86 GUI 内的 Android 终端应用程序运行 这个帖子 如何在 Android NDK 中创
  • 从 MVC 迁移到 ASP.NET Core 3.1 中的端点路由时,具有角色的 AuthorizeAttribute 不起作用

    我正在尝试将我的项目从 UseMVC asp net core 2 2 兼容样式 升级到 UseEndpoint Routing 并且我的所有请求都被重定向到我的验证失败页面 它与声明有关 如果我删除 Authorize Roles Adm
  • C# 中的接口继承

    我试图解决我在编写应用程序时遇到的相当大的 对我来说 问题 请看这个 为了简单起见 我将尝试缩短代码 我有一个名为的根接口IRepository
  • JSON 数组到 C# 列表

    如何将这个简单的 JSON 字符串反序列化为 C 中的列表 on4ThnU7 n71YZYVKD CVfSpM2W 10kQotV 这样 List
  • C++ 异步线程同时运行

    我是 C 11 中线程的新手 我有两个线程 我想让它们同时启动 我可以想到两种方法 如下 然而 似乎它们都没有按照我的预期工作 他们在启动另一个线程之前启动一个线程 任何提示将不胜感激 另一个问题是我正在研究线程队列 所以我会有两个消费者和
  • 如何从网站下载 .EXE 文件?

    我正在编写一个应用程序 需要从网站下载 exe 文件 我正在使用 Visual Studio Express 2008 我正在使用以下代码 private void button1 Click object sender EventArgs
  • 将数据打印到文件

    我已经超载了 lt lt 运算符 使其写入文件并写入控制台 我已经为同一个函数创建了 8 个线程 并且我想输出 hello hi 如果我在无限循环中运行这个线程例程 文件中的o p是 hello hi hello hi hello hi e
  • 在非活动联合成员上使用“std::addressof”是否定义明确[重复]

    这个问题在这里已经有答案了 下面的代码是尝试实现constexpr的版本offsetof在 C 11 中 它可以在 gcc 7 2 0 和 clang 5 0 0 中编译 这取决于申请std addressof工会非活跃成员的成员 这是明确
  • Azure 事件中心 - 按顺序接收事件

    我使用下面的代码从 Azure Event Hub 接收事件 https learn microsoft com en us azure event hubs event hubs dotnet framework getstarted s
  • C# 中条件编译符号的编译时检查(参见示例)?

    在 C C 中你可以这样做 define IN USE 1 define NOT IN USE 1 define USING system 1 system 1 IN USE 进而 define MY SYSTEM IN USE if US
  • 将构建日期放入“关于”框中

    我有一个带有 关于 框的 C WinForms 应用程序 我使用以下方法将版本号放入 关于 框中 FileVersionInfo GetVersionInfo Assembly GetExecutingAssembly Location F
  • 如何一步步遍历目录树?

    我发现了很多关于遍历目录树的示例 但我需要一些不同的东西 我需要一个带有某种方法的类 每次调用都会从目录返回一个文件 并逐渐遍历目录树 请问我该怎么做 我正在使用函数 FindFirstFile FindNextFile 和 FindClo
  • 运算符“==”不能应用于“int”和“string”类型的操作数

    我正在编写一个程序 我想到了一个数字 然后计算机猜测了它 我一边尝试一边测试它 但我不断收到不应该出现的错误 错误是主题标题 我使用 Int Parse 来转换我的字符串 但我不知道为什么会收到错误 我知道它说 不能与整数一起使用 但我在网
  • 如何在 gulp.src 中使用基本正则表达式?

    我正在尝试选择两个文件gulp src highcharts js and highcharts src js 当然 我知道我可以使用数组表达式显式添加这两个表达式 但出于学习目的 我尝试为它们编写一个表达式 我读过可以使用简单的正则表达式
  • 使用 C# 从 DateTime 获取日期

    愚蠢的问题 给定日期时间中的日期 我知道它是星期二 例如我如何知道它的 tue 2 和 mon 1 等 Thanks 您正在寻找星期几 http msdn microsoft com en us library system datetim
  • WinRT 定时注销

    我正在开发一个 WinRT 应用程序 要求之一是应用程序应具有 定时注销 功能 这意味着在任何屏幕上 如果应用程序空闲了 10 分钟 应用程序应该注销并导航回主屏幕 显然 执行此操作的强力方法是在每个页面的每个网格上连接指针按下事件 并在触
  • 带重定向标准流的 C# + telnet 进程立即退出

    我正在尝试用 C 做一个 脚本化 telnet 项目 有点类似于Tcl期望 http expect nist gov 我需要为其启动 telnet 进程并重定向 和处理 其 stdin stdout 流 问题是 生成的 telnet 进程在

随机推荐

  • DateTime 反序列化错误:JsonConvert 返回错误的日期

    我正在代码中从 Solr 检索数据以获取事件列表 我得到的结果格式如下 public class SearchResults
  • Javascript fs.readFileSync 返回什么编码?

    考虑以下 Node js Javascript 程序 var fs require fs var encoding1 var encoding2 var a fs readFileSync testdoc pdf var b new Buf
  • 知道在 C# 中选择了组合框中的哪个选项吗?

    我有一个组合框 里面有一个东西列表 列表中的东西数量未设置 它从文件夹收集数据 并且组合框中可以有无限 有点夸张 数量的项目 我如何知道用户选择哪个选项 我尝试了下面的代码 但它不起作用 我是 C 新手 不知道我做错了什么 comboBox
  • 我需要做什么才能在 iOS 上使用 tgmath?

    我正在编译我的第一个项目并启用 64 位支持 我遇到了一堆关于隐式转换为浮点数的编译器警告 发生这种情况是因为我使用 fabsf 并将结果分配给 CGFloat 在新的 64 位架构上是双精度型 而不是浮点型 根据这个问题的回答 基于 CG
  • ASP.NET 中的 HttpHandler 是什么

    ASP NET 中的 HttpHandler 是什么 为什么以及如何使用它 用最简单的术语来说 ASP NET HttpHandler 是一个实现以下功能的类 System Web IHttpHandler界面 ASP NET HTTPHa
  • 点击后如何清除输入文字

    使用 jQuery 如何在单击后清除输入文本 默认情况下 该值保留在输入字段中 例如 我有一个输入文本 其值为TEXT 当我执行单击时 我希望输入字段变空 要删除默认文本 请单击元素 input text click function th
  • 在 Windows Phone 7 上获取程序集版本

    在我的 C 应用程序中 我通常使用以下代码获取版本 以向客户展示 System Reflection Assembly GetExecutingAssembly GetName Version 这在 Windows Phone 7 中不起作
  • Android Web 视图中 Access-Control-Allow-Origin.:1 不允许 Origin null?

    我收到此错误 XMLHttpRequest cannot load http 192 168 1 33 8080 ws target Origin null is not allowed by Access Control Allow Or
  • 将 np.savetxt 和 np.loadtxt 与多维数组一起使用

    存储多于二维数组的通用方法是什么 ndim gt 2 使用相同的格式 维度 进行归档和检索np savetxt and np loadtxt 我担心的是 如果我在存储时给出任何分隔符 我在检索时是否需要进行一些处理 另外 处理浮点数并以相同
  • 多线程文件搜索 C#

    我需要一些帮助 现在我已经完成了一个文件搜索 它将搜索我的整个硬盘驱动器并且它可以工作 这是执行此操作的两种方法 public void SearchFileRecursiveNonMultithreaded Search files mu
  • 如何在 Amazon Web Services EC2 实例上安装 MySQL-python?

    我在 AWS 上创建了一个 EC2 实例 并使用 PuTTY 连接到它 我无法安装MySQL python使用Pythonpip命令如下 pip 安装 MySQL python 通过root权限 这是错误的控制台输出 Collecting
  • C++ const 在类方法中的使用[重复]

    这个问题在这里已经有答案了 可能的重复 const 这里有什么用 https stackoverflow com questions 2025159 whats the use of const here 在类的函数中使用 const ht
  • 将 Python 控制台输出打印到 Qtextedit

    当我按下按钮时 我有这样的输出 版本 ROMMON 主机名 正常运行时间 RUNNING IMAGE 硬件 串行 CONFIG REGISTER 12 2 55 SE7 引导程序 Revo Solusindo 01 1 小时 27 分钟 c
  • 在 Amazon Linux 虚拟服务器上的 Python 2.7 上安装 GDAL

    我正在运行一个 t2 micro Amazon Linux 实例 Python 2 7 12 已预安装 我想用 Python 安装 GDAL 我已经安装了 gcc c 和 numpy 以下命令都不适合我 sudo yum install g
  • 开发多语言 Windows 应用程序 C#

    我问的是 C 中用于支持 Windows 窗体多语言界面的常用技术 我在这里所说的一切 几年内国际化桌面应用程序 我们现在应该做什么 https stackoverflow com questions 270829 internationa
  • 在新的 Jetpack API 中使用定位“面板”

    我现在使用新版本的 Jetpack API 它允许您使用 JS 框架为 Firefox 创建插件 面板 对象很容易使用 但我正在努力寻找一种定位它的方法 该文档简单地指出 Jetpack 面板 API https builder mozil
  • 如何在 Grails 中设置 JSON 转换器的日期格式

    我的 Grails 控制器中有一个方法应该返回 JSON JSON 的属性是 Date 对象 但是当我这样做时 render myObject as JSON 输出如下 dateProperty 2010 12 31T23 00 00Z o
  • 在Android应用程序中添加多个文件提供程序

    伙计们 我正在开发一个 Android 应用程序 我需要外部应用程序依赖项 aar 文件 库应用程序有自己的文件提供程序 我的应用程序也有自己的文件提供程序 当我将其作为单独的应用程序运行时 库运行良好 但是当我将其包含在我的应用程序中时
  • 如何在应用程序启动时连续播放mp3,并在用户在后台关闭应用程序时停止播放mp3

    我正在编写一个应用程序 其中允许用户查看图像并选择其中一个来设置壁纸 在这个应用程序中我还想在用户启动应用程序时播放 mp3 并在用户关闭应用程序时停止该 mp3 我已将 MP3 音乐文件存储在res raw文件夹即 我的音乐 mp3 我知
  • 正则表达式电子邮件验证

    我用这个 w w w 2 3 正则表达式来验证电子邮件 w 这是一级域名 许多字母和数字 还有点和连字符 w 这是二级域名 w 2 3 这适用于其他级别域 从 3 到无穷大 其中包括一个点和 2 或 3 个文字 这个正则表达式有什么问题 编