为什么regex验证不起作用

本文关键字:不起作用 验证 regex 为什么 | 更新日期: 2023-09-27 17:50:20

我有一个表单

<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工作?

为什么regex验证不起作用

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

我尝试了以下操作,效果很好:

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