1

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

  1. 是否有 http:// 或 https://
  2. 正文只包含字母字符和数字
  3. 结尾就像 .com、.net、.ch
  4. 应该有可能,结尾后面还有另一个参数,例如https://stackoverflow.com/questions

我的正则表达式出现的代码如下所示:

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

我已经在寻找 Regex 但找不到合适的,因为这实际上是我第一次使用 Regex。

感谢帮助!

编辑

我更新了我的正则表达式,以便它还允许带有“-”字符的 url,例如http://www.comsoft-direct.ch/

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

4

1 回答 1

4

这个正则表达式应该根据您的约束检查简单的场景。您可以轻松地使用它并改进它(我强烈推荐,首先因为它在这种状态下非常简单,其次因为您是 Regex 初学者:))

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

在正则表达式 101上检查

基本解释:

(http|https):\/\/

应该以httpor开头https,后跟://

[\w\d]+

后跟 N 个字母和/或数字

\.[\w]+

后面跟着一个dot和一组字母。例如:.com,.net等(请注意,您必须更改为\.[\d\w]+也允许数字)

(\/[\w\d]+)

后跟,可选地,由一个/和一组字母和/或数字(例如/questions:)

注意:如果您想要一个完整的通用 url 验证器,那么您必须使用谷歌搜索。

于 2014-01-10T14:57:27.050 回答