You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server存储过程迁移Snowflake:复刻C# MailAddress功能

C# MailAddress类的邮箱格式校验规则

C#的MailAddress类在解析邮箱地址时,会执行以下格式校验逻辑,整体遵循RFC 5322标准并包含微软的特定实现细节:

  • 核心结构校验:必须包含且仅包含一个@符号,将地址明确分割为本地部分(@左侧)和域名部分(@右侧),两部分均不能为空
  • 本地部分校验:
    • 长度限制:最多64个字符
    • 允许字符范围:大小写英文字母(A-Z、a-z)、数字(0-9),以及特殊字符!#$%&'*+-/=?^_{|}~`
    • 特殊字符包裹规则:若本地部分包含空格、逗号、双引号等未在允许列表内的字符,必须用双引号完整包裹(例如"john.doe+tag"@example.com、"john,doe"@example.com),但引号内部不能出现未转义的双引号
    • 禁止未授权字符:未在允许列表内且未被双引号包裹的字符(如()<>[]:;@,`)会直接导致校验失败
  • 域名部分校验:
    • 长度限制:最多255个字符
    • DNS域名规则:需符合合法DNS域名格式——由多个标签组成,标签间用.分隔,每个标签最多63个字符,仅允许大小写英文字母、数字和-,且标签不能以-开头或结尾
    • IP地址支持:允许以方括号包裹的合法IPv4/IPv6地址作为域名(例如user@[192.168.1.100]、user@[IPv6:2001:db8::1])
  • 整体长度限制:整个邮箱地址的总字符数不能超过256个
  • 附加校验细节:
    • 大小写不敏感:校验过程不区分英文字母大小写,解析后会自动将域名部分转换为小写,本地部分保留原始输入的大小写
    • 首尾空格限制:整个地址不能有前导或尾随空格,除非空格位于本地部分的双引号包裹范围内

内容的提问来源于stack exchange,提问作者Ankit Srivastava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 04:33:20