1

如何从 url 中删除随机多余的斜杠或只是验证它?

例如,

有效陈述

http://domain.com/url/url2

https://domain.com/url/url2

www.domain.com/url/url2

无效陈述:

http://domain.com//url/url2

https://domain.com/////url/url2

www.domain.com/url/////////url2

感谢帮助!

4

3 回答 3

11

使用正则表达式:

require 'uri'
url = URI.parse('https://domain.com/////url/url2')
url.path.gsub! %r{/+}, '/'
p url.to_s
于 2013-04-26T13:00:56.547 回答
1

这种模式可以完成工作(是否使用 http(s)):

"https://domain.com/////url/url2".gsub! %r{(?<!:)/+(?=/)}, ''
于 2013-04-26T13:12:29.687 回答
0

其他答案不会从 URL 中删除尾部斜杠- 这对于 SEO 目的可能很重要。有很多方法可以做到这一点,但例如:

require 'uri'
url = URI.parse('https://example.com/////url/url2/')
url.path.gsub! %r{/+}, '/'
url.path.sub! %r{/$}, ''

或者:

require 'uri'
url = URI.parse('https://example.com/////url/url2/')
url.path.squeeze!('/')
url.path.chomp!('/')

见:String#squeeze!String#chomp!

于 2019-12-13T11:03:07.743 回答