我正在写一些代码,处理的URL,我要确保我不会离开一些奇怪的情况下,出...
是否有比其他主机的任何有效字符:AZ,0-9,“ - ”和“”?
(这包括任何可以在子域,等等Esentially,之间的任何东西://和第一/)
谢谢!
我正在写一些代码,处理的URL,我要确保我不会离开一些奇怪的情况下,出...
是否有比其他主机的任何有效字符:AZ,0-9,“ - ”和“”?
(这包括任何可以在子域,等等Esentially,之间的任何东西://和第一/)
谢谢!
请参阅上有效的主机名称的限制 :
主机名是由一系列级联点标签中的一样,都是域名1 。 例如,“en.wikipedia.org”是主机名。 每个标签必须字符1和63之间的长,而整个主机名具有最多255个字符。
该主机名的标签可能只包含ASCII字母的RFC任务“a”到“Z”(不区分大小写),数字“0”到“9”,和连字符。 主机名标签不能开始或连字符结束。 没有其他符号,标点符号或空格均不允许使用。
不,这是所有被允许
这里是一个参考,如果你喜欢阅读: http://www.ietf.org/rfc/rfc1034.txt
要看你做什么级别的验证(之前或URL后逃逸)。 如果您尝试验证用户输入的话,就可以去远远超出ASCII(Unicode的大块大块的)。
见http://en.wikipedia.org/wiki/Internationalized_domain_name
如果你尝试所有的逃逸和“的Punycode”完成后验证,存在验证没有意义的,因为这已经保证仅由老RFC包含有效的字符。
请记住,除了互联网的主机名规则,DNS系统可以自由地创建他们喜欢的任何名称。 DNS服务器可以接受和回复8位二进制请求:在DNS有线协议并不禁止这样做。
这意味着,对于内部LAN的网址,你可以有不同的规定,如出现在主机名的下划线。
如果你想编写一个完美的官方W3C规范匹配网址解析代码,请参阅www.w3.org/TR/url-1/文档。 请参阅有关URL中的主机的特定信息的第3(主机)。
有效的URL主机包括ASCII字母,数字,点和连字符(。)( - )与最大长度255点分开的标签以最大长度为63。连字符可界定字母数字序列例如one-two.net但不能出现在开始的时候还是一个点结束分隔标签如-one.two.com,one.two.com-或one-.two.com是无效的主机。
见https://tools.ietf.org/html/rfc1123#page-79和假设的第1部分https://tools.ietf.org/html/rfc952
另外这是一个链接到在线正则表达式工具来验证其担任的2019年5月28日URL主机https://www.regextester.com/23
也验证主机引用时https://tools.ietf.org/html/rfc1123#page-13你应该在DNS查找它之前语法检查主机的点分十进制数。