我需要使用URI :: regexp验证URL,但有些URL没有方案。Rails的URI :: regexp匹配没有计划
我尝试使用,
URI::regexp(["http", "http])
URI::regexp(%w(http https tel)
,但他们无法验证空计划,如 “www.google.com”, “google.com”。
如何包含/验证此类网址?
我需要使用URI :: regexp验证URL,但有些URL没有方案。Rails的URI :: regexp匹配没有计划
我尝试使用,
URI::regexp(["http", "http])
URI::regexp(%w(http https tel)
,但他们无法验证空计划,如 “www.google.com”, “google.com”。
如何包含/验证此类网址?
从source本身尝试URI::DEFAULT_PARSER.regexp[:ABS_URI]
。它也没有在特定条件下,如“How to check if a URL is valid”所提到的,但如果你是好它,这是很好的去:
def valid?(url)
!!(url =~ URI::ABS_URI || url =~ URI::REL_URI)
end
inp = %w|www.google.com
www.http.com
http://google.com
https://google.com|.map do |e|
e.gsub(/\A(?!http)/, "http://")
end
#⇒ [
# [0] "http://www.google.com",
# [1] "http://www.http.com",
# [2] "http://google.com",
# [3] "https://google.com"
# ]
_.map { |e| URI::regexp(%w|http https|) =~ e }
#⇒ [0, 0, 0, 0]
这是一个有效的URL here:在有效的(“富”) –