2014-01-10 362 views
1

在我的“ServiceEditModel”类中,我有一个属性Url和typeof Uri。为了进行验证,我搜索了一个正则表达式,它检查在我的“编辑”页面上填写的Url是否有效。
正则表达式应该检查正则表达式的网址检查

  1. 有一个http://或https://
  2. 身体只包含字母和数字
  3. 而故事的结局是例如像.COM,。净,.CH
  4. 应该是可能的,这背后有另外一个参数一样的结局例如https://stackoverflow.com/questions

在正则表达式来在看上去像个我的代码E本:

[Required(ErrorMessageResourceType = typeof(Resources.ApplicationTemplate), ErrorMessageResourceName = "UrlRequired")] 
[RegularExpression("REGEX COMES HERE", ErrorMessageResourceType = typeof(Resources.ApplicationTemplate), ErrorMessageResourceName = "InvalidUrl")] 
public Uri Url { get; set; } 

我已经找了正则表达式,但找不到合适的人,因为这实际上是我第一次用的experiance正则表达式。

感谢您的帮助!

编辑

我更新了我的正则表达式,这样它也允许的URL以“ - ”如http://www.comsoft-direct.ch/

更新的正则表达式角色:根据^(http|https):\/\/([\w\d + (\-)+?]+\.)+[\w]+(\/.*)?$

+4

以及您每小时支付的费用是多少? – Jonesopolis

+1

多年来,有关于域名系统的gTLD一直在谈论。但是,您认为今天实施限制顶级域名的事情是合理的? –

+0

[需要正则表达式来验证Url并支持%20和()](http://stackoverflow.com/questions/2068405/need-a-regex-to-validating-a-url-and-support -20-) – Raidri

回答

4

这个表达式应该检查简单的场景你的约束。你可以很容易地玩它,并改进它(我强烈建议,首先,因为它在这种状态非常简单,其次,因为你是一个正则表达式初学者:))

^(http|https):\/\/[\w\d]+\.[\w]+(\/[\w\d]+)$ 

检查它Regex 101

基本解释:

(http|https):\/\/ 

应与httphttps开始,其次是://

[\w\d]+ 

˚F由N个字母和/或随之而来的是dot数字

\.[\w]+ 

和一组字母ollowed。例如:.com.net等(请注意,您必须更改到\.[\d\w]+允许数字也)

(\/[\w\d]+) 

其次,可选,由/和一组字母和/或数字(例如:/questions

注意:如果你想要一个完全通用的URL验证器,那么你必须为此谷歌。

+0

为什么只通过添加正则表达式就会出现9个错误?错误消息:无法识别的转义序列 – brothers28

+0

您必须在C#上跳过反斜杠。将您的字符串更改为以下内容:“@”^(http | https):\/\/[\ w \ d] + \。[\ w] +(\/[\ w \ d] +)$“' – everton

+0

所以现在我必须添加/最后它的工作是正确的? – brothers28