为什么正则表达式验证不起作用?

时间:2011-04-17 21:05:59

标签: c# asp.net-mvc validation asp.net-mvc-3

我有一个带

的表格
<td class="label">@Html.LabelFor(u => u.Link)</td>
<td>
    @Html.TextBoxFor(u => u.Link)
    @Html.ValidationMessageFor(u => u.Link)
</td>

Link媒体资源有RegularExpression

[RegularExpression(@"^(([^\:\/?#]+)\:)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$", ErrorMessage= "invalid URL")]

但它没有得到验证。如果我添加[Required],则该字段已经过验证。

我包含3个脚本:

  • jquery 1.5.2
  • jquery.validate.min.js(默认)
  • jquery.validate.unobtrusive.min.js(默认)

我是否需要包含其他脚本?为什么它对Regex不起作用?

1 个答案:

答案 0 :(得分:2)

你可能在正则表达式中有一些错误。对不起,我无法发现它,正则表达式对我来说有点像中文(我知道我在这里没用)

我已经尝试了following并且运行良好:

[RegularExpression(@"((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)", ErrorMessage = "invalid URL")]