我尝试在表单中使用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中有效,并且它正在运行。
答案 0 :(得分:0)
将在浏览器端评估模式。很好的解决方案,但它无处不在(取决于浏览器)。不确定正则表达式是否与Ruby完全相同,也许你应该交叉引用taht。如果正则表达式遵循所需的语法,请检查HTML输出(也许你应该用“”替换//)
答案 1 :(得分:0)
在您的模型中,例如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