c# - 使用正则表达式在 C# 中验证 FQDN

标签 c# regex fqdn

我在 C# 中编写了以下模式来验证从用户收到的 FQDN:

(`?=^.{1,254}$)(^(?:(?!\d+\.)[a-zA-Z0-9_\-]{1,63}\.?)+(?:[0-9a-zA-Z]{1,})$)

我想允许用户输入以下 FQDN:

<name>.<letter><digit>

例如“aa.a1”。对于“aa.a1”,我的正则表达式将 FQDN 检测为无效,对于“aa.1a”,它检测为有效。有谁知道为什么吗?

最佳答案

不使用正则表达式,您可以将字符串加载到 Uri 中并使用不同的方法和属性来确定它是否是 FQDN。

Uri uri = new Undri(myFQDN);
string host = uri.Host;
bool isAbsolute = uri.IsAbsoluteUri;

关于c# - 使用正则表达式在 C# 中验证 FQDN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4913485/

相关文章:

c# - 从此代码片段中删除重复项

c# - 由于保护级别错误,成员无法访问

c# - 装饰器模式下对一个集合成员进行操作可以吗?

javascript - 如何使用 javascript 或 jquery 计算文本框中逗号的数量?

regex - 逗号分隔的前缀列表,内部有逗号

apache - 如何设置服务器的标准域名?

regex - 验证 FQDN

c# - ASP.NET Identity 2 分层角色

regex - makefile 目标上的多个词干

apache2 - Apache 如何确定 FQDN?