【问题标题】:url_field to accept non http:// or https:// linksurl_field 接受非 http:// 或 https:// 链接
【发布时间】:2017-03-21 07:27:22
【问题描述】:

我尝试在我的表单中使用url_field 标签。

我应该可以输入非http:// 的网址,例如我需要输入www.google.com。但是 rails url_field 不允许这样做。

有什么办法吗?

这是我目前的设置:

<%= f.url_field :english_link,  :class => "form-control", :placeholder =>"Type your message", :rows => "4", maxlength: 130, spellcheck: true %>

我也尝试在 f.text_field 中使用正则表达式,但它不起作用。

<%= f.text_field :english_link, pattern: /(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/, :class => "form-control", :placeholder => "Enter URL Link Here" %>

我检查了 rubular.com 中的正则表达式是否可以正常工作。

【问题讨论】:

    标签: html ruby-on-rails ruby


    【解决方案1】:

    模式将在浏览器端进行评估。不错的解决方案,但它不会在任何地方都有效(取决于浏览器)。不确定正则表达式是否与 Ruby 语法完全相同,也许您应该交叉引用 taht。如果正则表达式遵循所需的语法,请检查您的 HTML 输出(也许您应该将 // 替换为“”)

    https://www.w3schools.com/tags/att_input_pattern.asp

    【讨论】:

      【解决方案2】:

      在您的模型中,例如 Posts.rb 可以说它包含字段 english_link

      因此,在您的模型 Post.rb 中,您可以进行如下检查:

      validates_format_of : english_link, :with => /^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/ix
      

      【讨论】:

        猜你喜欢
        • 2014-07-17
        • 2015-11-03
        • 1970-01-01
        • 1970-01-01
        • 2013-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-15
        相关资源
        最近更新 更多