-1

我有以下用于 ip 验证的正则表达式:

^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$

和用于主机名验证的正则表达式:

^([a-zA-Z0-9]([a-zA-Z0-9\-_]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z0-9]([a-zA-Z0-9\-_]{0,61}[a-zA-Z0-9])?$

我必须如何更改它们以允许验证:

1) ip - 172.17.1.1:80172.17.1.1,80172.17.1.1

2) 主机名 - machineName:80machineName,80machineName

4

2 回答 2

0

你为什么不用这个Uri.CheckHostName(string name)方法?

确定指定的主机名是否是有效的 DNS 名称。

参数名称有以下文档:

要验证的主机名。这可以是 IPv4 或 IPv6 地址或 Internet 主机名。

于 2013-10-24T14:57:26.007 回答
0

已经讨论过了

public static bool IsValidHostAddress(string hostAddress)
{
    const string Pattern =  @"^(([0-9]{1,3}.){3}([0-9]{1,3})|localhost):\d+$";
    var regex = new Regex(Pattern, RegexOptions.Compiled);
    return regex.Match(hostAddress).Success;
}
于 2013-10-24T14:58:48.723 回答