首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ruby on Rails URL验证(regex)

Ruby on Rails URL验证(regex)
EN

Stack Overflow用户
提问于 2011-06-04 02:33:51
回答 3查看 10K关注 0票数 5

我正在尝试使用正则表达式来验证我的Rails模型中URL的格式。我已经用URL http://trentscott.com在ruular语言中测试了正则表达式,并且匹配。

当我在我的Rails应用程序中测试它时,你知道为什么它没有通过验证吗(它显示“名称无效”)。

代码:

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

  validates :serial, :presence => true
  validates :name, :presence => true,
                   :format    => {  :with => url_regex  }
EN

回答 3

Stack Overflow用户

发布于 2011-06-04 02:47:45

您不需要在这里使用regexp。Ruby有一个更可靠的方法来做到这一点:

# Use the URI module distributed with Ruby:

require 'uri'

unless (url =~ URI::regexp).nil?
    # Correct URL
end

(答案来自this post:)

票数 13
EN

Stack Overflow用户

发布于 2016-10-11 11:46:24

尝尝这个。

这对我很有效。

/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
票数 1
EN

Stack Overflow用户

发布于 2017-01-31 10:49:49

这将包括一个国际主机处理,如abc.com.it,其中.it部件是可选的

match '/:site', to: 'controller#action' , constraints: { site: /[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}(.[a-zA-Z]{2,63})?/}, via: :get, :format => false
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6231213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档