C# 用于网站url验证的Regexp
如何通过正则表达式验证这些URL:C# 用于网站url验证的Regexp,c#,.net,asp.net,regex,C#,.net,Asp.net,Regex,如何通过正则表达式验证这些URL: http://123.12.12.124:1234/default.html http://www.mysite.com http://www.mysite.com/ https://www.mysite.com anyProtocol://www.mysite.com www.mysite.com mysite.com 及 及 如果您正试图在.NET中构建自己的url重写引擎,那么我强烈建议您使用现有的产品。链接内置的IIS 7 但除此之外,这里有一点提示
http://123.12.12.124:1234/default.html
http://www.mysite.com
http://www.mysite.com/
https://www.mysite.com
anyProtocol://www.mysite.com
www.mysite.com
mysite.com
及
及
如果您正试图在.NET中构建自己的url重写引擎,那么我强烈建议您使用现有的产品。链接内置的IIS 7 但除此之外,这里有一点提示,说明您实际上需要检查什么: 我会简单地检查它是否匹配 http://www.mysite.com/ 无论如何rotocol://www.mysite.com www.mysite.com mysite.com 既然你说的是anyprotocol,甚至只是mysite.com,那么我会检查mysite.com是否在url中,并且在url后面最多没有“/” http://www.my.site.com/default 无论如何rotocol://www.my.site.com/default.anyExtension 无论如何rotocol://www.my.site.com/ www.my.site.com my.site.com
在这里,您只需检查url是否包含我的“my.site.com”,并添加一个(0,1)出现的“default”,因为您不关心扩展名。与其自己验证url,不如查看该类。如果您试图创建一个地址无效的
Uri
,它将抛出UriFormatException
。快速示例:
var valid = false;
try {
new Uri(someUrl);
valid = true;
}
catch (UriFormatException) {}
如果未包含该方案(
http://
part),则该方案将无效,因为它不是有效的URI,因此您应该首先尝试使输入URL正常。那么,您自己尝试了什么?你的正则表达式哪一部分有问题?是的。你必须自己开始,不是吗?我们不是来为您的问题提供完整的解决方案的。我们在这里帮助您找到特定问题的答案。我们很乐意为您提供指导,就像下面的Marthin一样,但您很少会发现有人愿意编写一个完整的解决方案。如何在客户端做到这一点?新的System.Uri在服务器端运行。@Alex,请编辑您的问题以添加此新信息。它从一开始就应该在那里你的问题中没有提到这一点,你应该用JavaScript寻找解决方案。您可以使用服务器端服务(使用System.URI
)在客户端验证URI。如果你需要更多的帮助,试着问一个新问题。
http://www.my.site.com
anyProtocol://www.my.site.com/
https://www.my.site.com
www.my.site.com
my.site.com
var valid = false;
try {
new Uri(someUrl);
valid = true;
}
catch (UriFormatException) {}