【问题标题】:Regular Expression Data Annotation for URL not workingURL 的正则表达式数据注释不起作用
【发布时间】:2013-07-30 05:51:12
【问题描述】:

我正在尝试用于我正在开发的 WPF MVVM 应用程序的正则表达式数据注释是偶然的,并且似乎不适用于很多正则表达式。

这个有效(不是用于 url,而是一些简单的东西):

[RegularExpression(@"^[a-zA-Z''-'\s]{1,40}$")]

这个,以及我尝试过的所有其他 url 验证正则表达式,都没有:

[RegularExpression(@"/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/")]

有没有人提供用于数据注释和 WPF 的有效 URL 正则表达式示例?

【问题讨论】:

    标签: .net wpf regex data-annotations


    【解决方案1】:

    您可以从这篇 How to validate URLs with regular expressions 文章中了解有关验证 URL 的更多信息。

    这是他们的建议之一,适用于各种 URL:

    ^((https?|ftp)://|(www|ftp).)[a-z0-9-]+(.[a-z0-9-]+)+([/ ?].*)?$

    正如@stema 所说,如果您对此有任何问题,请显示您尝试验证的任何 URL。

    【讨论】:

    • 谢谢@Sheridan。问题不是找到 URL 正则表达式,有很多非常好的资源。问题是正则表达式数据注释似乎无法正常工作,即使对于非常简单的正则表达式(如仅数字)也是如此。我不得不继续前进,所以看看是否有人可以提供完整验证属性的示例,包括正则表达式,然后尝试进一步测试。
    【解决方案2】:

    删除开始和结束的斜线,.net 不需要正则表达式分隔符。这里也不需要锚点,模式会自动匹配整个输入。

    [RegularExpression(@"(https?://)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*/?")]
    

    应该会更好。还删除了一些不需要的转义。我还没有检查模式本身的正确性!

    【讨论】:

    • 谢谢。该模式不起作用,并且删除前导和后跟斜杠和锚对其他示例没有帮助。我将改写这个问题,以简单地查看是否有人有用于数据注释的工作正则表达式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 2014-12-17
    相关资源
    最近更新 更多