如何制作" http://或https://"在Html 5 url验证中是可选的吗?

时间:2015-03-25 14:55:55

标签: asp.net-mvc html5-validation

默认情况下,Html 5网址验证需要 http:// https:// 。我尝试使用自定义正则表达式添加模式属性,但同时使用type =“url”,但未能这样做。

是否有任何选项可以覆盖正则表达式以使 http:// https:// 可选?

2 个答案:

答案 0 :(得分:1)

请尝试使用此正则表达式验证网址,而不使用" http://"," https://"或" www"

//Validates url without "http://", "https://" or "www"
[RegularExpression(@"((www\.|(http|https|ftp|news|file|)+\:\/\/)?[&#95;.a-z0-9-]+\.[a-z0-9\/&#95;:@=.+?,##%&~-]*[^.|\'|\# |!|\(|?|,| |>|<|;|\)])", ErrorMessage = "Please check the url")]

希望这会有所帮助......

答案 1 :(得分:0)

  1. 您可以使用“DataAnnotationsExtensions”库(mvc4 url validation)。
  2. 但它太旧了,我不知道它如何与最新的MVC版本一起使用。

    1. 我的解决方案。未在模型中验证,将URL显示为超链接:
    2. 型号:

      public class MyClass
          {
              public int Id { get; set; }
              public string WebSite { get; set; }
          }
      

      查看:

      @foreach (var item in Model) {
          <tr>
              <td>
                  <a target="_blank" href="http://@Html.DisplayFor(modelItem => item.WebSite)">@Html.DisplayFor(modelItem => item.WebSite)</a>
              </td>
              <td>
                  @Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
                  @Html.ActionLink("Details", "Details", new { id=item.Id }) |
                  @Html.ActionLink("Delete", "Delete", new { id=item.Id })
              </td>
          </tr> }