Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么正则表达式验证不起作用?_C#_Asp.net Mvc_Validation_Asp.net Mvc 3 - Fatal编程技术网

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

C# 为什么正则表达式验证不起作用?,c#,asp.net-mvc,validation,asp.net-mvc-3,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> 但它并没有得到验证。如果我添加[必需],则会验证该字段 我包括3个脚本: jquery 1.5.2 jquery.validate.

我有一张我的表格

<td class="label">@Html.LabelFor(u => u.Link)</td>
<td>
    @Html.TextBoxFor(u => u.Link)
    @Html.ValidationMessageFor(u => u.Link)
</td>
但它并没有得到验证。如果我添加
[必需]
,则会验证该字段

我包括3个脚本:

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

我需要包含另一个脚本吗?为什么它不适用于正则表达式?

您可能在正则表达式中有一些错误。对不起,我看不出来,正则表达式对我来说有点像中文(我知道我在这里没有帮助)

我试过了,效果很好:

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

是的,那件有点不对劲。您的成功了,谢谢。看起来表达式的每个部分都是可选的(捕获/分组后的所有
,除了这个
([^?#]*)
,因为
*
,它仍然是可选的),所以会传递一个空字符串,这可能就是您需要使用
必需的
属性的原因。总之,Darin提供了一个更干净、更容易证明正确的正则表达式。
[RegularExpression(@"((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)", ErrorMessage = "invalid URL")]