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