URL的正则表达式数据批注不起作用



我正在开发的WPF MVVM应用程序中尝试使用的正则表达式数据注释是偶然的,似乎无法使用很多正则表达式。

这一个工作(不是针对url,而是一些简单的东西):

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

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

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

有人有一个可用于数据注释和WPF的工作URL正则表达式的例子吗?

删除开始和结束斜杠,.net不需要regex分隔符。此外,这里不需要锚,模式会根据整个输入自动匹配。

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

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

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

以下是他们的一个建议,适用于各种各样的URL:

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

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

这是我对Url数据注释正则表达式的建议。它对我来说很好。

[RegularExpression(@"^(http(s)?://)?([w-]+.)+[w-]+[-a-zA-Z0-9@:%_+.~#?&//=]{2,256}.[a-z]{2,4}b(/[-a-zA-Z0-9@:%_+.~#?&//=]*)?$")]

最新更新