域名格式怎么验证?域名注册规范详解

要验证一个字符串是否符合域名格式,需满足以下规则:

域名格式验证

  1. 域名结构

    • 由多个标签(Label)组成,标签间用点()分隔。
    • 标签数量至少为1(如 localhost 是有效的)。
    • 标签不能为空(如 .comexample. 无效)。
  2. 标签规则

    域名格式验证

    • 长度:每个标签长度在 1 到 63 个字符之间。
    • 字符集:仅允许字母(a-z, A-Z)、数字(0-9)和连字符(-)。
    • 起始/结束字符:标签不能以连字符开头或结尾(如 -abcabc- 无效)。
  3. 总长度

    整个域名(包括分隔符点)总长度不超过 255 个字符。

    域名格式验证

实现代码(Python)

def is_valid_domain(domain: str) -> bool:
    # 检查总长度
    if len(domain) > 255:
        return False
    # 分割标签
    labels = domain.split('.')
    # 检查标签数量(至少1个)
    if len(labels) == 0:
        return False
    for label in labels:
        n = len(label)
        # 标签长度检查 (1-63)
        if n == 0 or n > 63:
            return False
        # 标签首尾不能是连字符
        if label.startswith('-') or label.endswith('-'):
            return False
        # 字符合法性检查
        for char in label:
            if not (char.isalnum() or char == '-'):
                return False
    return True

测试用例

域名示例 是否有效 原因
"example.com" 符合所有规则
"localhost" 单标签有效
"sub.domain.org" 多标签有效
"a-b.c0m" 允许连字符和数字
空域名无效
".com" 空标签无效
"example..com" 连续点导致空标签
"-invalid.com" 标签以连字符开头
"invalid-.com" 标签以连字符结尾
"in valid.com" 包含空格(非法字符)
"toolonglabel."*64 标签长度超过63字符
"a"*255 总长度等于255有效
"a"*256 总长度超过255无效
"ünicode.com" 非ASCII字符(需IDN编码处理)

关键点说明

  • 国际化域名(IDN):上述代码仅支持ASCII字符,如需支持非ASCII字符(如中文、阿拉伯语),需先将域名转换为Punycode(如 "中国.cn""xn--fiqs8s.cn")再验证。
  • 大小写处理:域名不区分大小写(EXAMPLE.COMexample.com 等价),验证时无需额外转换。
  • 特殊用途域名:如 localhost.test 等保留域名,格式上有效,但实际使用需遵循特定规范。

此方案严格遵循ICANN域名格式标准,可直接用于基础域名格式校验。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/285604.html

(0)
上一篇 2026年2月7日 14:17
下一篇 2026年2月7日 14:27

相关推荐

  • 网站提示域名失效了,本站新域名是什么?如何快速访问?

    当您尝试访问我们熟悉的网址,却意外地发现页面无法加载或提示“站点不存在”时,我们深知这可能会给您带来困惑与不便,我们首先要向您致以最诚挚的歉意,并郑重地告知您:本站域名已失效,新域名已正式启用,为了确保您能够继续顺畅地获取我们提供的服务与内容,我们准备了这份详尽的指南,希望能帮助您平稳过渡到我们的新“家园”,为……

    2025年10月21日
    04.4K0
  • 域名跳转到ip怎么办,域名直接解析到ip

    域名跳转到IP并非SEO优化的推荐做法,百度算法在2026年已明确将此类跳转视为低质量信号,可能导致收录降权,建议通过服务器配置反向代理或CDN加速实现透明访问,而非直接跳转,在2026年的搜索引擎优化环境中,用户体验与访问稳定性是核心考核指标,许多站长仍习惯使用301跳转将域名指向服务器IP,这种做法在早期或……

    2026年5月30日
    01331
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • .tm域名是商标域名?其独特价值与注册条件揭秘!

    在互联网的世界中,域名作为网站身份的象征,其重要性不言而喻,而.tm域名,作为一种特殊的商标域名,不仅能够提升企业的品牌形象,还能在激烈的市场竞争中占据一席之地,本文将详细介绍.tm域名是商标域名的特点、优势以及如何注册和使用,什么是.tm域名?.tm域名,全称为“.商标”域名,是一种以商标名称为基础的域名,它……

    2025年11月3日
    03930
  • 英文域名格式怎么算合法,如何正确设置网站域名格式?

    只能使用26个英文字母(不区分大小写)、数字0-9以及连字符(-),且连字符不能出现在开头或结尾,长度通常为2-63个字符,这个规则由ICANN统一制定,确保了全球域名系统的稳定和唯一性,英文域名格式要求有哪些域名格式并非随意拼写,它背后有一套严格的全球标准,无论你注册什么后缀,都必须遵守这套规则,否则域名会直……

    2026年8月22日
    0223

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注