我正在编写一个Regex来验证电子邮件。唯一令我困惑的是:
是否可以为顶级域名设置单个字符?(例如: lockevn.c )
背景:我知道顶级域名可以是2个字符到任何东西(.uk,.us到.canon ,. museum)。我读了一些文件,但我不知道它是否允许1个字符。
答案 0 :(得分:63)
技术上可行,但是根本没有单个字符tld被接受(截至目前),所以答案是:
是, 可以为顶级域名设置单个字符,但是,目前没有单个字符TLD在根目录中。
您可以在此网址上查看当前位于根目录中的顶级域名列表:
RFC-952显示“名称”是什么,包括有效的顶级域名:
A "name" (Net, Host, Gateway, or Domain name) is a text string up
to 24 characters drawn from the alphabet (A-Z), digits (0-9), minus
sign (-), and period (.).
此外,RFC-952的语法显示:
<name> ::= <let>[*[<let-or-digit-or-hyphen>]<let-or-digit>]
RFC-1123第2.1节特别允许单字母域&amp;子域名,将RFC-952的初始语法从仅从一个字母开始更改为更宽松,所以现在您可以使用单字母顶级域名作为数字:
2.1 Host Names and Numbers
The syntax of a legal Internet host name was specified in RFC-952.
One aspect of host name syntax is hereby changed: the
restriction on the first character is relaxed to allow either a
letter or a digit. Host software MUST support this more liberal
syntax.
编辑:根据@ mr.spuratic的评论,RFC-3696第2节收紧了顶级域名的规则,并声明:
There is an additional rule that essentially requires
that top-level domain names not be all-numeric.
这意味着:
对此的一个非常不科学的测试表明,如果我将“a
”添加到指向我本地计算机的hosts
文件中,转到我的地址栏中的http://a
会显示我的Apache欢迎页面。
答案 1 :(得分:-3)
我不确定互联网标准,但在实践中,没有。
请参阅,
http://www.norid.no/domenenavnbaser/domreg.html
和
http://sqa.fyicenter.com/Online_Test_Tools/Domain_Name_Format_Validator.php
答案 2 :(得分:-5)
你应该明确允许1个字符的域名,因为一些注册管理机构不会偶然允许它们(我说的是英国,德国,波兰,爱尔兰等相当大的注册管理机构 - 这是互联网社区的重要贡献者,而不是一个充满异国情调的小例外)。由于我还计划使用这些域,这肯定也适用于我使用的所有电子邮件服务,字母和数字,我真的会给出提示允许这个,否则你的脚本可能需要稍后更正。
一些最大的互联网公司也使用这样的域名 - 最着名的例子之一是Twitters t.co用于缩短。我知道其他拥有此类域名的公司是Facebook,Google,PayPal,Deutsche Telekom。但是这个名单更长,也有一些更大的投资者把它们当作资产。
顺便提一下,如果您搜索“1个字母的域名”,有一个网站在线交易此类域名:)