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

时间:2013-07-30 07:38:33

标签: .net wpf regex data-annotations

正在尝试使用的正则表达式数据注释我正在使用的WPF MVVM应用程序是命中和错过,似乎不适用于很多正则表达式。

这个有效(不是为了网址而是为了简单):

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

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

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

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

2 个答案:

答案 0 :(得分:0)

删除起始和结束斜杠,.net不需要正则表达式分隔符。此处不需要锚点,模式会自动与整个输入匹配。

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

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

答案 1 :(得分:0)

您可以在此How to validate URLs with regular expressions文章中找到有关验证网址的详情。

以下是其中一条适用于各种网址的建议:

<强> ^((HTTPS | FTP):// |(WWW | FTP))([A-z0-9-] +)[A-z0-9-] + +([/ ]。*)?$

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