1
<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(默认)
我是否需要包含另一个脚本?为什么它不适用于正则表达式?
它看起来如果表达式的每个部分都是可选的(除了这个'([^?#] *)',因为'*')仍然是可选的,所以捕获/分组后的所有'?',所以一个空字符串会通过,这可能就是为什么你需要使用'Required'属性。总而言之,达林提供了一个更清晰,更容易证明正确的正则表达式。 – bottlenecked 2011-04-18 07:22:53